【发布时间】:2017-08-06 19:07:31
【问题描述】:
我有一个如下的 XML:
<Service xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="someurl" xsi:schemaLocation="someurl Sample.xsd">
<RequestControl>
<requestID>100129</requestID>
<Control>
<requesterName>Admin</requesterName>
<requesterLanguage>100</requesterLanguage>
</Control>
</RequestControl>
<Inquiry>
<InquiryType>getParty</InquiryType>
<InquiryParam>
<Param name="PartyId">854850029276139020</Param>
</InquiryParam>
</Inquiry>
</Service>
我想使用 XPath XML Parser 从标记中提取值“getParty”。我使用以下作为我的表达方式:
expression = xPath.compile("/Service/Inquiry/InquiryType/text()");
如何才能写出准确完整的java代码呢?我只想提取<InquiryType>getParty</InquiryType> 的值。
【问题讨论】:
-
我在下面使用:NodeList xpathNodeList = (NodeList) expression.evaluate(doc, XPathConstants.NODESET); System.out.println("xpathNodeList 长度为:" +xpathNodeList.getLength());但是它打印长度为 0。
-
尝试使用
XPathConstants.STRING -
它说:线程“main”中的异常 java.lang.ClassCastException: java.lang.String 与 org.w3c.dom.NodeList 不兼容
-
@Som,使用你的代码我得到 xpathNodeList.getLength() = 1
-
@jeanr :请您帮我解决这个问题。在我的情况下,它显示 0 作为长度。我再次检查了一遍。