try {
URL url = new URL(/*your xml url*/);
URLConnection conn = url.openConnection();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(conn.getInputStream());
NodeList nodes = doc.getElementsByTagName(/*tag from xml file*/);
for (int i = 0; i < nodes.getLength(); i++) {
Element element = (Element) nodes.item(i);
NodeList title = element.getElementsByTagName(/*item within the tag*/);
Element line = (Element) title.item(0);
phoneNumberList.add(line.getTextContent());
}
}
catch (Exception e) {
e.printStackTrace();
}
在我的示例中,我的XML文件看起来有点像:
<numbers>
<phone>
<string name = "phonenumber1">555-555-5555</string>
</phone>
<phone>
<string name = "phonenumber2">555-555-5555</string>
</phone>
</numbers>
我会用“phone”替换/*tag from xml file*/,用“string”替换/*item within the tag*/
# 1 楼答案
我会使用DOM解析器,如果XML文件不太大,它的效率不如SAX,因为在这种情况下更容易
我只制作了一个android应用程序,涉及XML解析。从SOAP web服务接收的XML。我使用了XmlPullParser。该实现来自Xml。newPullParser()有一个错误,对nextText()的调用并不总是像文档承诺的那样提前到END_标记。有一个解决办法
# 2 楼答案
下面是一个例子:
在我的示例中,我的XML文件看起来有点像:
我会用“phone”替换
/*tag from xml file*/
,用“string”替换/*item within the tag*/
# 3 楼答案
我总是使用w3c dom类。我有一个静态助手方法,我使用它将xml数据解析为字符串,并向我返回一个文档对象。获取xml数据的位置可能会有所不同(web、文件等),但最终会将其作为字符串加载
像这样的
# 4 楼答案
有不同类型的解析机制可用,一种是SAX Here is SAX parsing example,另一种是DOM解析Here is DOM Parsing example.。从你的问题来看,不清楚你想要什么,但这些可能是很好的起点
# 5 楼答案
我知道有三种类型的解析:DOM、SAX和XMLPullParsing
在我这里的示例中,您需要XML元素的URL和父节点
也可以试试this