0
如何從addressinformation
(在這種情況下爲)獲取UUID,其中地址名稱是帶有Java XPath的「BILL_TO」(如果有)?如何從XPath中的子節點值節點獲取父文本值?
這裏是我的XML:
<Company>
<Name>My Company</Name>
<LastName>Smith</LastName>
<FirstName>Jim</FirstName>
<street>123 Main Street</street>
<AddressInformation>
<UUID>543233<UUID>
<Address>
<UUID>223223</UUID>
<AddressID>
<AddressName>Default</AddressName>
</AddressID>
</Address>
</AddressInformation>
<AddressInformation>
<UUID>999123<UUID>
<Address>
<UUID>443211</UUID>
<AddressID>
<AddressName>BILL_TO</AddressName>
</AddressID>
</Address>
</AddressInformation>
<city>Mytown</city>
<state>NY</state>
<zip>11234</zip>
</Company>
並獲得UUID元素的文本:// Company/AddressInformation [Address/AddressID/AddressName ='BILL_TO']/UUID/te xt() – dnault 2013-03-11 21:42:15
我已經使用了11年的XML,並且如果您認爲您將使用XML/XSL很多,那麼我不能推薦XMLSPY,那麼XMLSPY就是王道! – DeadlyDan 2013-03-11 21:57:41
@dnault否,如果您想要'UUID'元素的字符串值,那麼您只需評估答案中的原始xpath _as a string_ - 對於javax.xpath,這意味着XPathFactory.newInstance()。newXPath()。評估(表達式,domDocument,XPathConstants.STRING)'。 'text()'位置步驟將爲您提供給定節點的所有單個文本節點子節點的集合,這很少是您真正想要的(例如,將這樣的集合傳遞給期望字符串的函數將僅在集合中的_first_節點,而不是元素的整個文本值)。 – 2013-03-13 08:53:56