在bash中使用xmlns获取xmllint属性
下面是config.xml文件(该文件来自一个源存储库,我无法在自动化过程中更改它;我可以更改构建过程,尽管如此,对于如何提取两个属性(androidversionCode和IOSCBundLeverVersion)的想法将不胜感激在bash中使用xmlns获取xmllint属性,xml,bash,xpath,xmllint,Xml,Bash,Xpath,Xmllint,下面是config.xml文件(该文件来自一个源存储库,我无法在自动化过程中更改它;我可以更改构建过程,尽管如此,对于如何提取两个属性(androidversionCode和IOSCBundLeverVersion)的想法将不胜感激 <?xml version='1.0' encoding='utf-8'?> <widget id="com.company.project" version="1.2.8" androidversionCode="209" iosCFBundle
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.company.project" version="1.2.8" androidversionCode="209" iosCFBundleVersion="209" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>Project name</name>
<description>Project description</description>
</widget>
这仅在xmlns=”时有效http://www.w3.org/ns/widgets“从文件中删除。如果我设置xmlns=”“,那么它也可以工作,但我没有发现它会返回id或任何版本代码。因此,xmlns=“something”会使xpath失败,对吗
我如何才能做到这一点并获取这些版本号?解决方案是:
xmllint --xpath 'string(//*[local-name()="widget"]/@id)' config.xml
相关的:
xmllint --xpath 'string(//*[local-name()="widget"]/@id)' config.xml