以下是我需要数据的XML
<StyleML>
<transaction>
<party>
<partyId>Party1</partyId>
<partyAlias>
<partyAliasId>2323</partyAliasId>
<partyAliasLongName>AQR LP</partyAliasLongName>
</partyAlias>
</party>
<party>
<partyId>Party2</partyId>
<partyAlias>
<partyAliasId>2323</partyAliasId>
<partyAliasLongName>Scotland</partyAliasLongName>
</partyAlias>
</party>
<transactionParticipant>
<counterpartyRef>Party2</counterpartyRef>
<participantType>Counterparty Participant</participantType>
</transactionParticipant>
<transactionParticipant>
<counterpartyRef>Party3</counterpartyRef>
<participantType>Broker Participant</participantType>
</transactionParticipant>
</transaction>
</StyleML>
我需要来自参与类型为对方参与者的一方的partyAliasLongName。
即。在上面的例子中,我想要来自交易参与者的身份为“第2方”的Party的数据,我们可以得出结论,对于counterParty参与者方ID是'Party2'
我想在Xpath中总结这个条件,但是我不知道该怎么做。 任何帮助都会很棒。
答案 0 :(得分:1)
回应你的后续问题:
也许XQuery路线可能是一个解决方案。
for $x in /StyleML/transaction/transactionParticipant
where $x/counterpartyRef='Party2'
return <result>{data($x/./counterpartyRef)} {data($x/./participantType)}</result>
这将返回结果“Party2 Counterparty Participant”。
答案 1 :(得分:0)
在此处尝试此xPath:
//party[./partyId/text() = //transactionParticipant[./participantType/text() = 'Counterparty Participant']/counterpartyRef/text()]/partyId/text()
您要做的是找到相应括号[]中的条件有效的元素。
E.g。 here您可以测试xPath,对我而言,它正在使用您的示例。
编辑:因此,此xPath搜索其partyId在相应的transactionParticipant中的party元素,该参与者具有participantType“Counterparty Participant”。 text()的内容是添加xml-element的text-node。括号后面的东西然后选择你想要的那些xml元素的子部分。
答案 2 :(得分:0)
我需要来自<partyAliasLongName>
<party>
为<participantType>
的{{1}} {。}}。
包装易读:
//party[ partyId = //participantType[. = 'Counterparty Participant']/../counterpartyRef ]//partyAliasLongName