我希望得到一个TagName“控件”。我正在使用XPath来解析我的XML文件。目前我只得到一个空白窗口,我不知道为什么。
我的XML文件:
<tags>
<row Id="1" TagName="soccer" Count="7" ExcerptPostId="12371" WikiPostId="12370" />
<row Id="2" TagName="servos" Count="63" ExcerptPostId="186" WikiPostId="185" />
<row Id="3" TagName="control" Count="394" ExcerptPostId="192" WikiPostId="191" />
<row Id="5" TagName="gait" Count="4" ExcerptPostId="12362" WikiPostId="12361" />
</tags>
这是我的Main.java
String uri = "/home/files/Tags.xml";
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(uri);
XPath xPath = XPathFactory.newInstance().newXPath();
String output = (String) xPath.evaluate("/tags/row[@TagName='control']", doc.getDocumentElement(),
XPathConstants.STRING);
System.out.println("My output:" + output);
} catch (IOException | ParserConfigurationException | XPathExpressionException | SAXException e) { }
预期输出应为:
控制我的输出:
发布于 2018-06-15 06:41:42
你得到了一个异常,你正在默默地消费它。将e.printStackTrace()
添加到catch块以找出它是什么。
假设您解决了这个问题,那么您似乎也在使用xpath来选择一个空元素(自关闭)的文本内容。
如果你想选择一个元素的属性的值,你需要这样做:
/tags/row[@TagName='control']/@TagName
有关更多信息,请参阅这篇文章:Getting attribute using XPath
https://stackoverflow.com/questions/50866749
复制相似问题