【问题标题】:What am i doing wrong? XML and bash我究竟做错了什么? XML 和 bash
【发布时间】:2013-11-29 00:25:44
【问题描述】:

这是我正在尝试制作的代码:

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

打印“XPath 集为空” 它应该从我的 xml 文档中打印出费率。打印哪种汇率取决于货币代码(澳元、美元、欧元等)。如果它是这样输入的:

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

它会响应代码为 GBP 的货币的正确汇率。

这是为什么呢?如何解决?

【问题讨论】:

    标签: xml bash xpath


    【解决方案1】:

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

    【讨论】:

    • 谢谢,帮了大忙。现在遇到了另一个简单的问题(我在脚本方面很新)。我如何将下面的行乘以 3? $(xmllint --xpath '/rates/currency['code="\"$code1\""']/rate/text()' rates.xml)
    【解决方案2】:

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

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

    【讨论】:

    • 谢谢,帮了大忙。现在遇到了另一个简单的问题(我在脚本方面很新)。我如何将下面的行乘以 3? $(xmllint --xpath '/rates/currency['code="\"$code1\""']/rate/text()' rates.xml)
    • @user2939526 不客气。只需为此打开一个新问题,它很可能会得到回答。
    猜你喜欢
    • 2013-08-06
    • 1970-01-01
    • 2016-07-18
    • 2019-12-23
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 2014-09-13
    • 2015-08-26
    相关资源
    最近更新 更多