【发布时间】:2021-07-16 14:13:27
【问题描述】:
给定以下 Xpath 到一个元素
/std:Batch/BatchSection/ContractPartner/Contractor/Contract/contractNumber
如何打印节点合约的所有子元素 其中 sequenceNumber= 12345?
我试过了
xmllint --xpath "string(/std:Batch/BatchSection/ContractPartner/Contractor/Contract/contractNumber[contractNumber='12345'])" test.xml
但是,这是一个无效的 XPath 表达式。如何解决?
示例输入:
<std:Batch xmlns:std="http://www.test.com/contractBatch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<year>2020</year>
<batchType>3</batchType>
<runDate>2020-04-11</runDate>
<text>Datatest</text>
<jobInfo>Test</jobInfo>
<BatchSection>
<addedAtDate>2020-04-11</addedAtDate>
<ContractPartner>
<contractDealerAG>44444</contractDealerAG>
<contractorType/>
<isoCountry>NL</isoCountry>
<language>EN</language>
<Contractor>
<contractor>44444</contractor>
<Contract>
<contractor>44444</contractor>
<sequenceNumber>12345</sequenceNumber>
<info1>abcd</info1>
</Contract>
</Contractor>
</ContractPartner>
</BatchSection>
</std:Batch>
所需的输出(其中 sequenceNumber=12345):
<Contract>
<contractor>44444</contractor>
<sequenceNumber>12345</sequenceNumber>
<info1>abcd</info1>
</Contract>
【问题讨论】:
-
相应地编辑了我的帖子
-
现在有效。
标签: xpath xml-namespaces xmllint