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");

この場合の name は 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 に答える