0

假设我有给定的 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>

现在我想将两个 XPath 值填充为单个逗号分隔值。

例如。我想填充 2323,AQR LP 即 [/styleml/transaction/party/partyAlias/partyAliasId ,/styleml/transaction/party/partyAlias/partyAliasLongName]

我试过了| 运算符加入 XPath 结果,但是它仅填充第一个 xpath 数据作为最终结果。

4

1 回答 1

1

使固定

请务必尊重标签大小写(styelml→<code>StyleML)。

解决方案使用or

我会去像XPath 中描述的那样选择多个标签

/StyleML/transaction/party/partyAlias/*[self::partyAliasId or self::partyAliasLongName]

解决方案使用|saxon

使用saxon XQuery,您可以使用以下/path/(a|b)语法:

java -cp "/path/to/saxon9ee.jar" net.sf.saxon.Query -s:"/path/to/file.xml" \
-qs:"/StyleML/transaction/party/partyAlias/(partyAliasId|partyAliasLongName)"

输出:

<?xml version="1.0" encoding="UTF-8"?>
  <partyAliasId>2323</partyAliasId><partyAliasLongName>AQR LP</partyAliasLongName>
  <partyAliasId>2323</partyAliasId><partyAliasLongName>Scotland</partyAliasLongName>
于 2013-09-19T11:21:10.497 回答