0
因此,我在这里有一个XML文件,我想使用XPath从它获取值。有问题的文件是zip文件中的XML文件,您可以下载here:使用XPath从XML文件获取特定值
我相信它是有效的XML。
我目前的目标是解析出文档中的最后(最新)LMP_PRC
值。
我当前的代码看起来像这样每次返回一个空字符串:
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr =
xpath.compile("//m:OASISReport/m:MessagePayload/m:RTO/m:REPORT_ITEM[3]/m:REPORT_DATA[/m:DATA_ITEM='LMP_PRC'][last()]/m:VALUE/text()") ;
String result = (String) expr.evaluate(doc, XPathConstants.STRING);
的m:REPORT_ITEM[3]
已经混乱的区域我,所以我已经与几乎所有数字尝试过了,有没有好运。
有了上面的代码,后面是的System.out.println()我没有从你发布的代码中获得任何东西。 XPath xpath = factory.newXPath(); XPathExpression expr = xpath.compile(“// m:OASISReport/m:MessagePayload/m:RTO/m:REPORT_ITEM [3]/m:REPORT_DATA [m:DATA_ITEM ='LMP_PRC'] [last()]/m: VALUE/text()“); String result =(String)expr.evaluate(doc,XPathConstants.STRING); System.out.println(“Last value:”+ result); – 2012-08-01 20:09:27
编辑答案以包含名称空间解析。如果您希望它比我放置的更复杂,请参阅http://www.ibm.com/developerworks/java/library/x-nmspccontext/index.html – davidfmatheson 2012-08-02 12:31:11