freelance iş ilanları

Android Xml Parsing (TextView de gösterme ?)

6 Mesajlar 2.510 Okunma
lstbozum
smsonayhizmeti

4531 4531 WM Aracı Anonim Üyelik
  • Üyelik 13.03.2012
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 996
  • Beğeniler 210 / 211
  • Ticaret 3, (%100)
Arkadaşlar 2 saattir uğraşıyorum ancak bir türlü çözemedim kodu bulduğum sitede sadece kodları yazmış ne işe yaradığı ve nasıl görüntüleneceği hakkında bir bilgi yok.

MainActivity.Java

package com.ahmettalut.stringexample;


import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.Parser;
import org.xml.sax.SAXException;

import android.os.Bundle;
import android.renderscript.Element;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {
@SuppressWarnings("rawtypes")
ArrayList xmlList=new ArrayList();

TextView yazi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xmlList=xmloku("ahmettalut.com/pizza.xml");
}

public ArrayList xmloku(String url) {

ArrayList xmllistesi =new ArrayList();

try {
URL xmlyolu = new URL(url);
DocumentBuilderFactory dFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dFactory.newDocumentBuilder();

Document document=dBuilder.parse(new InputSource(xmlyolu.openStream()));
document.getDocumentElement().normalize();

NodeList nodeListCountry=document.getElementsByTagName("ders");
for (int i = 0; i < nodeListCountry.getLength(); i++) {
Node node=nodeListCountry.item(i);
Element elementMain=(Element) node;

NodeList nodeListText=elementMain.getElementsByTagName("ders"); //Burada hata var (getElementsByTagName)
Element elementText=(Element) nodeListText.item(0);

xmllistesi.add(elementText.getChildNodes().item(0).getNodeValue());//Burada hata var (getChildNodes)
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return xmllistesi;
}

}





Matematik
Türkçe


İlk olarak kodda 2 adet kırmızı hata bildirimi var. Yorum satırı olarak yazdım.

İkinci olarak ta mesela ilk ders olan matematiği yazi id'li textview de nasıl gösterebilirim?

Ek Olarak: Arkadaşlar acil lazım en azından bu tarz konuların paylaşıldığı bir site önerirseniz oradan yardım isterim.
 

 

wmaraci
reklam

kilitbilgi kilitbilgi kilitbilgi@gmail.com Kullanıcı
  • Üyelik 13.06.2012
  • Yaş/Cinsiyet 31 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İzmir
  • Ad Soyad B** Ç**
  • Mesajlar 396
  • Beğeniler 82 / 125
  • Ticaret 3, (%100)
Merhabalar, dom parser yerine sax parser kullanmanızı öneririm.
http://www.mkyong.com/java/how-to-read-utf-8-xml-file-in-java-sax-parser/ adresinden utf-8 destekli bir şekilde xml dosyasından veri çekebilirsiniz.
Daha detaylı bir android uygulamasını yakın zamanda yayınlayabilirim.
Kolay gelsin.
 

 

4531 4531 WM Aracı Anonim Üyelik
  • Üyelik 13.03.2012
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 996
  • Beğeniler 210 / 211
  • Ticaret 3, (%100)

kilitbilgi adlı üyeden alıntı

Merhabalar, dom parser yerine sax parser kullanmanızı öneririm.
http://www.mkyong.com/java/how-to-read-utf-8-xml-file-in-java-sax-parser/ adresinden utf-8 destekli bir şekilde xml dosyasından veri çekebilirsiniz.
Daha detaylı bir android uygulamasını yakın zamanda yayınlayabilirim.
Kolay gelsin.


Hocam çok teşekkürler yorum için, ancak bir android dosyasına ekleyip istediğim veriyi textview de gösterme işini nasıl yapacağım bir türlü çözemedim ya artık anlamamaya başladım yorgunluktan ya da harbiden zor. Bir de örnek bir android xml parse konusu falan yayınlarsanız çok iyi olur :)
 

 

kilitbilgi kilitbilgi kilitbilgi@gmail.com Kullanıcı
  • Üyelik 13.06.2012
  • Yaş/Cinsiyet 31 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İzmir
  • Ad Soyad B** Ç**
  • Mesajlar 396
  • Beğeniler 82 / 125
  • Ticaret 3, (%100)

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.util.ArrayList;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class xmlTest {

private static ArrayList idList, titleList, artistList,
durationList, playsList, thumbUrlList;

public static void main(String[] args) {
idList = new ArrayList();
titleList = new ArrayList();
artistList = new ArrayList();
durationList = new ArrayList();
playsList = new ArrayList();
thumbUrlList = new ArrayList();
try {

SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();

DefaultHandler handler = new DefaultHandler() {

boolean id = false;
boolean title = false;
boolean artist = false;
boolean duration = false;
boolean plays = false;
boolean thumb_url = false;

public void startElement(String uri, String localName,
String qName, Attributes attributes)
throws SAXException {

if (qName.equalsIgnoreCase("ID")) {
id = true;
}

if (qName.equalsIgnoreCase("TITLE")) {
title = true;
}

if (qName.equalsIgnoreCase("ARTIST")) {
artist = true;
}

if (qName.equalsIgnoreCase("DURATION")) {
duration = true;
}
if (qName.equalsIgnoreCase("PLAYS")) {
plays = true;
}
if (qName.equalsIgnoreCase("THUMB_URL")) {
thumb_url = true;
}

}

public void characters(char ch[], int start, int length)
throws SAXException {

if (id) {
idList.add(new String(ch, start, length));
id = false;
}

if (title) {
titleList.add(new String(ch, start, length));
title = false;
}

if (artist) {
artistList.add(new String(ch, start, length));
artist = false;
}

if (duration) {
durationList.add(new String(ch, start, length));
duration = false;
}
if (plays) {
playsList.add(new String(ch, start, length));
plays = false;
}
if (thumb_url) {
thumbUrlList.add(new String(ch, start, length));
thumb_url = false;
}
}

};
URL xmlyolu = new URL("http://www.ahmettalut.com/pizza.xml");

InputStream inputStream = xmlyolu.openStream();
Reader reader = new InputStreamReader(inputStream, "UTF-8");

InputSource is = new InputSource(reader);
is.setEncoding("UTF-8");

saxParser.parse(is, handler);

} catch (Exception e) {
e.printStackTrace();
}

System.out.println(getAllInfo());
}

public static String getAllInfo() {
String allInfo = "";
for (int i = 0; i < artistList.size(); i++) {
allInfo += idList.get(i) + titleList.get(i) + artistList.get(i)
+ durationList.get(i) + playsList.get(i)
+ thumbUrlList.get(i) + "\n";
}
return allInfo;
}
}

http://ahmettalut.com/pizza.xml adresindeki xml dosyasını kullanarak yukarıdaki kod yardımı ile verileri çekebilirsiniz.

https://github.com/kilitbilgi/androidXMLParse/tree/master
adresine de örnek bir android projesini ekledim.
İyi çalışmalar.
4531

kişi bu mesajı beğendi.

wmaraci
wmaraci

4531 4531 WM Aracı Anonim Üyelik
  • Üyelik 13.03.2012
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 996
  • Beğeniler 210 / 211
  • Ticaret 3, (%100)

kilitbilgi adlı üyeden alıntı

..... adresindeki xml dosyasını kullanarak yukarıdaki kod yardımı ile verileri çekebilirsiniz.

https://github.com/kilitbilgi/androidXMLParse/tree/master
adresine de örnek bir android projesini ekledim.
İyi çalışmalar.


Size ne kadar teşekkür etsem azdır. 2-3'e kadar uyumadım araştırma yaptım yine de bir sonuca ulaşamamıştım.


/Hocam denedim şuan normal olarak projeyi import ederken hata verdi bende kodları yerleştireyim dedim. Yerleştirdim hata mesajı falanda gelmedi ancak çalıştır dediğimde.


Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/ref/FinalReference

bu hata ile karşılaştım.
 

 

kilitbilgi kilitbilgi kilitbilgi@gmail.com Kullanıcı
  • Üyelik 13.06.2012
  • Yaş/Cinsiyet 31 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İzmir
  • Ad Soyad B** Ç**
  • Mesajlar 396
  • Beğeniler 82 / 125
  • Ticaret 3, (%100)

ahmettalut adlı üyeden alıntı

Size ne kadar teşekkür etsem azdır. 2-3'e kadar uyumadım araştırma yaptım yine de bir sonuca ulaşamamıştım.


/Hocam denedim şuan normal olarak projeyi import ederken hata verdi bende kodları yerleştireyim dedim. Yerleştirdim hata mesajı falanda gelmedi ancak çalıştır dediğimde.


Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/ref/FinalReference

bu hata ile karşılaştım.

Hocam bu sorununuzun nedeni java vm ile ilgili , bu sorunu eclipse.ini dosyasına jdk yolunu tanıtarak çözebiliriz.

Bu sorunu çözebilmek için eclipse klasörünü açıyoruz , eclipse.ini dosyasına
javaw.exe yolunu giriyoruz.
Örnek javaw.exe yolu aşağıda verilmiştir.
-vm C:\Program Files\Java\jdk1.7.0_10\bin\javaw.exe

Kaynak

Bu adımları uyguladıktan sonra sorununuz düzelecektir.
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al