<?xml version="1.0" encoding="utf-8"?><DataTransfer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://cbi.marian.com/xmlschemas/jde_interface_v1.0.xsd"><Summary>
<PO>
<PONumber>1798128110160-1</PONumber>
<PORevision>6</PORevision>
<POSystemID>273906</POSystemID>
<OrderDate>19-02-2015</OrderDate>
<RequiredDate>15-10-2016</RequiredDate>
<PromisedDeliveryDate>27-03-2017</PromisedDeliveryDate>
<RetentionPercentage></RetentionPercentage>
<POReference1>1798128110160-1</POReference1>
<POReference2></POReference2>
</PO>
<POItem>
<LineNumber> 1</LineNumber>
<ItemDescription>Enclosure containing </ItemDescription>
<POReference1>1798128110160-1</POReference1>
<POReference2></POReference2>
</POItem>
<POItem>
<LineNumber> 2</LineNumber>
<ItemDescription>Compressor</ItemDescription>
<POReference1>1798128110160-1</POReference1>
<POReference2></POReference2>
</POItem>
<POItem>
<LineNumber> 3</LineNumber>
<ItemDescription>Cooler</ItemDescription>
<POReference1>1798128110160-1</POReference1>
<POReference2></POReference2>
</POItem>
在上面的xml中,我想只读取POItem下的第一个LineNumber。我使用以下命令:
echo cat "//POItem/LineNumber/text()" | xmllint --shell po123.xml
这将显示所有3个LineNumber值。是否可以在不使用sed命令的情况下仅获取第一个LineNumber值。 XML文件名是po123.xml
我目前的xmllint中没有xpath。
答案 0 :(得分:1)
试试这个:
echo cat '//POItem[1]/LineNumber/text()' | xmllint --shell po123.xml
这将打印第一个LineNumber
元素的POItem
。