我究竟做错了什么? XML和bash

时间:2013-11-28 15:41:35

标签: xml bash xpath

这是我正在尝试的代码:

echo "type in code"
read code1
echo (xmllint --xpath '/rates/currency[code="$code1"]/rate/text()' rates.xml)

打印“XPath set为空” 它应该打印出我的xml文档中的速率。打印的费率由货币代码(澳元,美元,欧元等)决定。如果它将被输入:

echo (xmllint --xpath '/rates/currency[code="GBP"]/rate/text()' rates.xml)

它将回显代码为GBP的货币的正确汇率。

为什么?如何解决?

2 个答案:

答案 0 :(得分:1)

在查询字符串周围使用双引号,以便$code扩展到字符串中的值:

echo $(xmllint --xpath "/rates/currency[code=\"$code1\"]/rate/text()" rates.xml)

答案 1 :(得分:1)

交换引号分隔符xmllint --xpath "/rates/currency[code='$code1']/rate/text()" rates.xml