gpt4 book ai didi

linux - 如何从xml文件中获取特定数据?

转载 作者:太空宇宙 更新时间:2023-11-04 03:49:00 24 4
gpt4 key购买 nike

从命令行,以下命令可以正常工作:

echo 'cat//volume_trustees/*[contains(translate(.,"SMITH","smith"),"smith")]' | xmllint --shell /path/database.xml

但我想将其放入 shell 脚本中,并以搜索项作为参数。但我不知道如何让它发挥作用:

y=$1

up="$(echo $y | tr 'A-Z' 'a-z')"

lo="$(echo $y | tr 'a-z' 'A-Z')"

echo 'cat //volume_trustees/*[contains(translate(.,$up,$lo),$lo)]' | xmllint --shell /path/database.xml

这会显示以下错误消息:

xmlXPathCompOpEval: parameter error
XPath error : Stack usage errror
XPath error : Invalid operand
XPath error : Stack usage errror
XPath error : Invalid type
xmlXPathEval: 1 object left on the stack
//volume_trustees/*[contains(translate(.,$up,$lo),$lo)]: no such node

谁能帮帮我吗?

最佳答案

您需要在 echo 上加双引号(也应该在 y 赋值上使用双引号)

y="$1"

echo "cat //volume_trustees/*[contains(translate(.,$up,$lo),$lo)]" | xmllint --shell /path/database.xml

echo 字符串括在单引号中可防止 $up、$lo 和 $lo 扩展。

关于linux - 如何从xml文件中获取特定数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27035674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com