今天,我开始学习如何正确使用xmllint。它似乎没有被很好的覆盖或解释。我打算使用单个语言资源文件来运行我的整个系统。我有一个混合的bash脚本和php页面,必须从这个语言文件中读取。使用XPATH的Linux Bash XMLLINT
目前我使用以下格式在我的xml文件en.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item id="index.php">
<label>LABEL</label>
<value>VALUE</value>
<description>DESCRIPTION</description>
</item>
<item id="config.php">
<label>LABEL</label>
<value>VALUE</value>
<description>DESCRIPTION</description>
</item>
</resources>
现在我要开始一个bash脚本行应该从XML文件中提取数据值。例如,我想从index.php
项目获得DESCRIPTION
的值。
我用
xmllint --xpath 'string(//description)' /path/en.xml
的不同布局,工作,但现在我改变我的XML文件的布局,我失去了对如何最好地针对特定<item>
,然后向下钻取到其在bash脚本中的子元素。
有人可以帮助xmllint --xpath
线获得这个值吗?
工程。非常感谢你的时间和考虑 – RootWannaBe 2014-11-03 08:20:03
嗨,您使用的是哪个版本的xmllint?我有'xmllint --version xmllint:使用libxml版本20626 编译时使用:线程树输出推式阅读器模式编写器SAXv1 FTP HTTP DTDValid HTML旧版C14N目录XPath XPointer XInclude Iconv ISO8859X Unicode正则表达式自动化Expr架构Schematron模块调试' t有** - xpath **选项 – 2016-12-22 07:20:34
@ReddySK结果在我用'xmllint:using libxml version 20902'获得的答案中,但实际上并没有报告xmllint本身的版本,而是底层库的版本(最重要的是,libxml)。看起来你有这里描述的问题:http://stackoverflow.com/q/11975862/1987598,但试图让'-xpath'在xmllint中工作是不值得的麻烦:xmllint主要是一个验证工具,不适用于XPath表达式。改为使用您选择的编程语言的XPath库。 – 2016-12-22 11:49:29