1

在我的 xml 中,我正在搜索特定名称并希望检索它们的值。

例如我有这个领域:

<n0:field>
   <n0:name n4:type="n3:string" xmlns:n3="http://www.w3.org/2001/XMLSchema"   xmlns:n4="http://www.w3.org/2001/XMLSchema-instance">LifePolicyID</n0:name> 
   <n0:value n6:type="n5:string" xmlns:n5="http://www.w3.org/2001/XMLSchema" xmlns:n6="http://www.w3.org/2001/XMLSchema-instance">1</n0:value> 
</n0:field>

我尝试获取 LifePolicyID 名称的值。

有没有办法以编程方式做到这一点?

现在我像这样使用Xpath:

XPathExpression xpe = xpath.compile("//*[name/text()='" + name +"']/value");

在这种情况下,名称是 LifePolicyID。但它不起作用。

有任何想法吗?

4

1 回答 1

0

你的代码似乎对我有用

String xml = 
    "<n0:field xmlns:n0='http://test/uri'>" +
    "  <n0:name n4:type='n3:string' xmlns:n3='http://www.w3.org/2001/XMLSchema'   xmlns:n4='http://www.w3.org/2001/XMLSchema-instance'>LifePolicyID</n0:name>" +
    "  <n0:value n6:type='n5:string' xmlns:n5='http://www.w3.org/2001/XMLSchema' xmlns:n6='http://www.w3.org/2001/XMLSchema-instance'>1</n0:value>" +
    "</n0:field>";
String name = "LifePolicyID";
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression xpe = xpath.compile("//*[name/text()='" + name +"']/value");
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(xml)));
System.out.println(xpe.evaluate(doc));
于 2012-10-15T11:58:30.483 回答