前言:
这不是重复,因为所有其他主题都不能回答我的具体问题 .
我在Xubuntu 18.04上
使用libxml-xpath-perl 1.42(如果重要的话)
问题:
我有一个XML,让我们这样说:
<root>
<level1>
<somechild foo="bar" />
</level1>
</root
我想从 somechild
属性 foo
获取值 bar
. 但是,当我查询
FOO=$(xpath -e '/root/level1/somechild/@foo' $XMLFILE)"
在我的bash脚本中它返回 foo="bar"
而不是 bar
.
我已经研究过这个问题并发现我必须用string()做一些事情,但我无法弄清楚正确的语法是什么 .
我已经在不同的地方尝试过string()函数,但是到目前为止,我最接近成功了
FOO="$(xpath -e 'string(/root/level1/somechild/@foo)' $XMLFILE)"
在这种情况下 echo $FOO
给了我
查询未返回节点集 . Value :吧
仍然不是我想要的,但至少没有错误, Value 被认为是 bar
我该如何正确使用?
1 回答
使用有效的XML:
要么
要么
输出: