有很多方法。但我很想知道是否有更快的方法(考虑开发时间)或API,我可以在其他领域的特定标准上检索指定字段的值。
也就是说,考虑我有这个xml:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<port:getAllIdentificationsResponse xmlns:port="http://www.ibm.com/Party">
<ResponseControl xmlns="http://www.ibm.com/schema">
<ResultCode>SUCCESS</ResultCode>
<ServiceTime>8</ServiceTime>
</ResponseControl>
<PartyIdentificationBObj>
<IdentificationIdPK>1234</IdentificationIdPK>
<IdentificationValue>DRIVER LICENSE</IdentificationValue>
<IdentificationNumber>5678</IdentificationNumber>
<PartyIdentificationLastUpdateUser>EVERGREEN</PartyIdentificationLastUpdateUser>
<PartyIdentificationLastUpdateTxId>7777</PartyIdentificationLastUpdateTxId>
</TCRMPartyIdentificationBObj>
<PartyIdentificationBObj>
<IdentificationIdPK>2345</IdentificationIdPK>
<IdentificationValue>SOURCE IDENTIFIER</IdentificationValue>
<IdentificationNumber>429043825</IdentificationNumber>
<PartyIdentificationLastUpdateUser>EVERGREEN</PartyIdentificationLastUpdateUser>
<PartyIdentificationLastUpdateTxId>8888</PartyIdentificationLastUpdateTxId>
</TCRMPartyIdentificationBObj>
<PartyIdentificationBObj>
<IdentificationIdPK>3456</IdentificationIdPK>
<PartyId>249443337882014002</PartyId>
<IdentificationType>300</IdentificationType>
<IdentificationValue>MEMBERSHIP NUMBER</IdentificationValue>
<IdentificationNumber>429043825</IdentificationNumber>
<PartyIdentificationLastUpdateUser>EVERGREEN</PartyIdentificationLastUpdateUser>
<PartyIdentificationLastUpdateTxId>9999</PartyIdentificationLastUpdateTxId>
</TCRMPartyIdentificationBObj>
<PartyIdentificationBObj>
<IdentificationIdPK>4567</IdentificationIdPK>
<IdentificationValue>SOURCE IDENTIFIER</IdentificationValue>
<IdentificationNumber>UTS~^~3229004~^~1</IdentificationNumber>
<PartyIdentificationLastUpdateUser>EVERGREEN</PartyIdentificationLastUpdateUser>
<PartyIdentificationLastUpdateTxId>1111</PartyIdentificationLastUpdateTxId>
</TCRMPartyIdentificationBObj>
</port:getAllIdentificationsResponse>
</soapenv:Body>
</soapenv:Envelope>
我想返回 IdentificationValue SOURCE IDENTIFIER 的所有字段的 IdentificationNumber ?
我的结果应该是 429043825 , UTS~ ^ ~3229004~ ^ ~1 。
关于哪种方式最好的建议会更有帮助。
答案 0 :(得分:1)
对于指定谁和通过什么,最快是毫无意义的。开发时间或处理速度最快?如果要进行处理,几乎可以肯定不重要,但您必须针对特定的软件和硬件环境进行衡量。
保存自己(可能)不必要的担心,只使用XPath ......
这个XPath,
//PartyIdentificationBObj[IdentificationValue='SOURCE IDENTIFIER']/IdentificationNumber
将根据请求返回IdentificationNumber
元素的所有PartyIdentificationBObj
元素子元素,其子元素IdentificationValue
元素的字符串值等于"SOURCE IDENTIFIER"
。