簡體   English   中英

如何使用XmlPullParser解析XML

[英]How to parse XML using XmlPullParser

我想使用Java XmlPullParser來解析XML文件,如下所示:

<start>
    <tag1> text1 </tag1>
    <tag2> 
        <tag3>text3</tag3>
        <tag1>text4</tag1>
    </tag2>
    <tag4> text5</tag4>
</start>

我只想要<tag1> text1 </tag1>作為結果。 我當前的方法產生<tag1> text1 </tag1><tag1>text4<tag1/> 我還能做什么?

編輯:

我正在以String格式獲取XML。 我想用org.xmlpull.v1.XmlPullParser;解析它org.xmlpull.v1.XmlPullParser;

您也可以使用javax.xml.xpath API:

import java.io.FileReader;
import javax.xml.xpath.*;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;

public class XPathDemo {

    public static void main(String[] args) throws Exception {
        XPathFactory xpf = XPathFactory.newInstance();
        XPath xpath = xpf.newXPath();
        InputSource xml = new InputSource(new FileReader("input.xml"));
        Node result = (Node) xpath.evaluate("/tag1", xml, XPathConstants.NODE);
        System.out.println(result);
    }

}

每個人都有自己對Java中XML處理的偏好,我更喜歡在Java中處理XML時使用JAXB ,因為我發現使用這個直接的xpath更容易。

您可以使用Java Xpath API執行此操作

嘗試使用dom4j庫

    InputStream is = FileUtils.class.getResourceAsStream(filepath);
    SAXReader reader = new SAXReader();
    org.dom4j.Document doc = reader.read(is);
    is.close();
    Element content = doc.getRootElement();
    List<Element> els = content.elements("elemeNtname");

在此方法之后,您將獲得els列出名為“elemeNtname”的xml文件中的所有元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM