在 xmlint 中合并来自多个 xpath 的结果
Combine results from multiple xpaths in xmlint
我想要 return 多个 --xpath
短语的结果。我试过了
xmllint --xpath '//ItemGroup/Content/@Include' --xpath '//ItemGroup/None/@Include' --xpath '//Compile/@Include' -
这return只是最后一个xpath
我使用 concat()
尝试过同样的事情,但是 return 每个 xpath 中只有一个匹配项:
xmllint --xpath "concat(concat(//ItemGroup/None/@Include,' ', //ItemGroup/Content/@Include), ' ', //ItemGroup/Compile/@Include)" -
你应该这样union operator |
:
xmllint --xpath '//ItemGroup/Content/@Include | //ItemGroup/None/@Include | //Compile/@Include' input.xml
有样品XML喜欢
<?xml version="1.0" encoding="UTF-8"?>
<class>
<ItemGroup>
<Content Include="First Item"> aaa </Content>
<None Include="Third Item"> bbb </None>
<Content Include="Second Item"> aaa </Content>
</ItemGroup>
<parent>
<Compile Include="Compiling is great"> aaa </Compile>
<sub2> bbb </sub2>
</parent>
</class>
输出是:
Include="First Item" Include="Third Item" Include="Second Item" Include="Compiling is great"
这确实适用于 XPath-1.0。
我想要 return 多个 --xpath
短语的结果。我试过了
xmllint --xpath '//ItemGroup/Content/@Include' --xpath '//ItemGroup/None/@Include' --xpath '//Compile/@Include' -
这return只是最后一个xpath
我使用 concat()
尝试过同样的事情,但是 return 每个 xpath 中只有一个匹配项:
xmllint --xpath "concat(concat(//ItemGroup/None/@Include,' ', //ItemGroup/Content/@Include), ' ', //ItemGroup/Compile/@Include)" -
你应该这样union operator |
:
xmllint --xpath '//ItemGroup/Content/@Include | //ItemGroup/None/@Include | //Compile/@Include' input.xml
有样品XML喜欢
<?xml version="1.0" encoding="UTF-8"?>
<class>
<ItemGroup>
<Content Include="First Item"> aaa </Content>
<None Include="Third Item"> bbb </None>
<Content Include="Second Item"> aaa </Content>
</ItemGroup>
<parent>
<Compile Include="Compiling is great"> aaa </Compile>
<sub2> bbb </sub2>
</parent>
</class>
输出是:
Include="First Item" Include="Third Item" Include="Second Item" Include="Compiling is great"
这确实适用于 XPath-1.0。