使用perl的xpath命令返回多个属性

时间:2014-02-13 23:21:06

标签: xml perl bash xpath

我试图在我的mac上使用xpath命令从xml文档返回一些属性数据而不为其编写脚本。文档具有以下节点:

<BaseTable id="32821" name="Web Service Send Log">

我想返回节点的nameid属性。

我能够使用以下命令获取每个命令:

$ xpath FileName.xml //BaseTable/@id
$ xpath FileName.xml //BaseTable/@name

但是当我尝试返回两个属性时,我得到一个错误,说parens是垃圾:

$ xpath FileName.xml //BaseTable/(@id|@name)

我已经搜索过,没有找到正确的语法,xpath命令没有相关的手册文件。

这是否可以直接从命令行执行此操作,如果是这样,语法将如何显示?

1 个答案:

答案 0 :(得分:1)

(@id|@name)是XPath 2.0语法,而Perl xpath使用1.0。这是另一种选择:

xpath -e '//BaseTable/@*[name()="id" or name() = "name"]' FileName.xml