我做錯了什么?運行以下命令時,我得到 XPath 集為空。
xmllint --xpath './/PackageReference[@Include="Tips"]/Version/text()' sdk/Test/TestSample.xml
請在下面找到 xml 檔案內容。
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<PackageReference Include="Tips">
<Version>2.2.2</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Hips">
<Version>1.1.1</Version>
</PackageReference>
</ItemGroup>
</Project>
uj5u.com熱心網友回復:
您正與可怕的命名空間糾纏在一起。由于 xmllint 不支持命名空間宣告,您可以使用這個:
xmllint --xpath "//*[local-name()='PackageReference'][@Include='Tips']/*[local-name()='Version']/text()" your_file.xml
或者,您可以使用 xmlstarlet,如下所示:
xml sel -N x="http://schemas.microsoft.com/developer/msbuild/2003" -t -m "//x:PackageReference[@Include='Tips']/x:Version/text()" -v . your_file.xml
他們都應該輸出
2.2.2
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/415023.html
標籤:
上一篇:將Int傳遞給動態存盤程序失敗
