如何使用 XmlPullParser 解析 XML

发布于 2024-12-13 23:41:13 字数 582 浏览 0 评论 0原文

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

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

我只想 ; text1 作为结果。我当前的方法会生成 。 text1text4。我还必须做什么?

编辑:

我正在获取String格式的XML。我想使用 org.xmlpull.v1.XmlPullParser; 来解析它。

I want to use the Java XmlPullParser to parse an XML file like this:

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

I want only <tag1> text1 </tag1> as the result. My current method produces both <tag1> text1 </tag1> and <tag1>text4<tag1/>. What else must I do?

Edit:

I am getting the XML in String format. I want to parse it using org.xmlpull.v1.XmlPullParser;.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

智商已欠费 2024-12-20 23:41:14

您可以使用 Java Xpath API 来完成此操作

You can do that using Java Xpath API

随心而道 2024-12-20 23:41:14

在此方法中尝试使用 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 中列出 xml 文件中名为“elemeNtname”的所有元素。

try to use dom4j library

    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");

after this in method you will get in els list all the elements in xml file with name "elemeNtname".

_畞蕅 2024-12-20 23:41:13

您还可以只使用 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);
    }

}

You could also just use the javax.xml.xpath APIs:

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);
    }

}
小巷里的女流氓 2024-12-20 23:41:13

每个人对 Java 中的 XML 处理都有自己的偏好,我的偏好是在 Java 中处理 XML 时使用 JAXB 因为我发现它更容易使用直接的 xpath。

Everyone has thier own preferences for XML processing in Java and my preference is to use JAXB when dealing with XML in Java because I find it easier to use that straight xpath.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文