[英]How to parse XML using XmlPullParser
I want to use the Java XmlPullParser to parse an XML file like this: 我想使用Java XmlPullParser来解析XML文件,如下所示:
<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. 我只想要<tag1> text1 </tag1>
作为结果。 My current method produces both <tag1> text1 </tag1>
and <tag1>text4<tag1/>
. 我当前的方法产生<tag1> text1 </tag1>
和<tag1>text4<tag1/>
。 What else must I do? 我还能做什么?
Edit: 编辑:
I am getting the XML in String
format. 我正在以String
格式获取XML。 I want to parse it using org.xmlpull.v1.XmlPullParser;
我想用org.xmlpull.v1.XmlPullParser;
解析它org.xmlpull.v1.XmlPullParser;
. 。
You could also just use the javax.xml.xpath
APIs: 您也可以使用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执行此操作
try to use dom4j library 尝试使用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");
after this in method you will get in els list all the elements in xml file with name "elemeNtname". 在此方法之后,您将获得els列出名为“elemeNtname”的xml文件中的所有元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.