我正在尝试在Mac上使用xpath命令从xml文档中返回一些属性数据,而无需为其编写脚本。文档具有以下节点:
<BaseTable id="32821" name="Web Service Send Log">
我想返回节点的name
和id
属性。
我能够使用以下命令获取每个:
$ xpath FileName.xml //BaseTable/@id
$ xpath FileName.xml //BaseTable/@name
但是当我尝试返回这两个属性时,我收到一个错误,指出括号是垃圾:
$ xpath FileName.xml //BaseTable/(@id|@name)
我四处搜索,没有找到正确的语法,xpath
命令没有关联的手动文件。
是否可以直接从命令行执行此操作,如果是这样,语法会是什么样子?
(@id|@name)
是XPath 2.0语法,而Perl xpath
使用1.0。这是一个替代方案:
xpath -e '//BaseTable/@*[name()="id" or name() = "name"]' FileName.xml