2011-04-01 23 views
7

Android'de bir uygulama geliştiriyorum!Android'de XPath ile XML Dosyada Ara

Şimdi biraz anlaşmazlık var, bir XPath sorgusu yürütmek istiyorum ama bu sorunu çözmek için gelmedim.

enter image description here

Bu kullandığım filethat XML örneği:

<?xml version="1.0"?> 
<catalog> 
    <book id="bk101"> 
    <author>Gambardella, Matthew</author> 
<title>XML Developer's Guide</title> 
<genre>Computer</genre> 
<price>44.95</price> 
<publish_date>2000-10-01</publish_date> 
<description>An in-depth look at creating applications 
    with XML.</description> 
</book> 

<book id="bk102"> 
<author>Ralls, Kim</author> 
<title>Midnight Rain</title> 
<genre>Fantasy</genre> 
<price>5.95</price> 
<publish_date>2000-12-16</publish_date> 
<description>A former architect battles corporate zombies, 
    an evil sorceress.</description> 
</book> 

<book id="bk103"> 
<author>Corets, Eva</author> 
<title>Maeve Ascendant</title> 
<genre>Fantasy</genre> 
<price>5.95</price> 
<publish_date>2000-11-17</publish_date> 
<description>After the collapse of a nanotechnology 
    society in England.</description> 
</book> 
</catalog> 

Nasıl yapabilirim ??

şimdiden teşekkür ederiz !! Bu örneğe

cevap

20

Görünüş: örneklerinden

import java.io.FileReader; 
import javax.xml.xpath.XPath; 
import javax.xml.xpath.XPathConstants; 
import javax.xml.xpath.XPathFactory; 
import org.w3c.dom.Element; 
import org.w3c.dom.NodeList; 
import org.xml.sax.InputSource; 
public class GuestList { 
    public static void main(String[] args) throws Exception { 
    XPathFactory factory = XPathFactory.newInstance(); 
    XPath xPath = factory.newXPath(); 
    NodeList shows = (NodeList) xPath.evaluate("/schedule/show", new InputSource(new FileReader(
     "tds.xml")), XPathConstants.NODESET); 
    for (int i = 0; i < shows.getLength(); i++) { 
     Element show = (Element) shows.item(i); 
     String guestName = xPath.evaluate("guest/name", show); 
     String guestCredit = xPath.evaluate("guest/credit", show); 
     System.out.println(show.getAttribute("weekday") + ", " + show.getAttribute("date") + " - " 
      + guestName + " (" + guestCredit + ")"); 
    } 
    } 
} 

dinlenme Buradasınız: sadece ithal ad alanları göstermek için hatırlar biri olduğun için http://jexp.ru/index.php/Java_Tutorial/XML/XPath

+2

1! – SteveCav

+0

online olarak barındırılan XML'im varsa onu ayrıştırabilirim, hepsini okuyayım mı – AMH

+2

Harici bir XML dosyasını okumak için SAX kullanarak bir akışı açmak için URL sınıfını kullanabilirsiniz. NodeList show = (NodeList) xPath.evaluate ("/ schedule/show"), yeni InputSource (yeni URL ( "http://www.exple.com/file.xml").openStream()), XPathConstants.NODESET); – alibenmessaoud