我正在尝试使用Xpath选择文件。如果Xpath在以下位置找到匹配值:
(//Party/PartyIdentification/ID[text()="6655779999"]
)或
(//Party/PartyTaxScheme/CompanyID[text()="US6655779999"]
和TaxScheme/ID = DEY
)或
(//Party/PartyTaxScheme/CompanyID[text()="US6655779999"]
AND TaxScheme/ID = BSY
)
选择正确的文件。
我开始使用://BuyerParty/Party/PartyIdentification/ID[text()="6655779999"]
,它完美无缺!
但我无法弄清楚如何扩展xpath以检查其他两条路径的DEY和BSY条件。到目前为止,我花了几个星期的时间把论坛里面的内容找到答案,但没有运气。
此OR条件的共振是xml文件中可能存在一个,两个或所有三个元素。我以前不知道哪一个。我需要获得上述三个匹配条件中的至少一个匹配,以确保选择正确的文件。
关于如何解决这个问题的任何想法?
<ROOT>
<BuyerParty>
<Party>
<PartyIdentification>
<ID>6655779999</ID>
</PartyIdentification>
<PartyName>
<Name>Charly</Name>
</PartyName>
<Address>
<StreetName>El Cajon Boulevard</StreetName>
<CityName>San Diego</CityName>
<PostalZone>92104</PostalZone>
<Country>
<IdentificationCode>US</IdentificationCode>
</Country>
</Address>
<PartyTaxScheme>
<CompanyID>US11432112341</CompanyID>
<TaxScheme>
<ID>DEY</ID>
</TaxScheme>
</PartyTaxScheme>
<PartyTaxScheme>
<CompanyID>US1143211234</CompanyID>
<TaxScheme>
<ID>BSY</ID>
</TaxScheme>
</PartyTaxScheme>
<Contact>
<Telephone>555-5555555</Telephone>
</Contact>
</Party>
</BuyerParty>
答案 0 :(得分:2)
您可以使用|
(或)选择器
//Party/PartyIdentification/ID[text()="6655779999"]|//Party/PartyTaxScheme/CompanyID[following-sibling::TaxScheme/ID = 'DEY' or following-sibling::TaxScheme/ID = 'BSY'][text()="US11432112341"]