【发布时间】:2012-10-09 00:32:57
【问题描述】:
我有一个这样的 xml
<Quiz>
<Inhalt Frage="test" number="1" />
<Inhalt Frage ="test2" number=2"/>
</Quiz>
现在,在 android 中,我想以这种方式解析这个 xml,结果显示我的内容 数字 2 的“Frage”。我试图以这种方式解析它,但我总是得到一个 nullexception 错误:
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr= xpath.compile("//Frage[@number=2]/text()");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
einga= nodes.item(0).getNodeName();
如果有人可以帮助我,那就太好了。 谢谢你:-)
【问题讨论】:
-
您正在尝试从节点 Frage 中选择属性编号为 2 的文本。您熟悉 Xpath 表达式吗?试试这个链接:w3schools.com/xpath/xpath_syntax.asp 试试:"/Quiz/Inhalt[@number=2]@Frage" 你会得到 test2
-
谢谢,但是当我尝试这个时,我得到了错误:额外的非法令牌'@','Frage'
-
它是这样工作的:XPathExpression expr= xpath.compile("//Inhalt[@nummer='2']/@Frage");
-
对...在@Stephane 的建议中,
@之前缺少一个/。关于学习 XPath:请不要使用 w3schools,除非您希望以后必须忘记他们的错误。 (见w3fools.com)改为尝试zvon.org/xxl/XPathTutorial/General/examples.html -
@StephaneMathis,你能把你的评论变成答案吗?然后,这个问题将不再被归类为“未回答”,如果他愿意,Basem 可以“接受”你的回答。 (而且你可能会得到更多的代表。)
标签: android xpath xml-parsing