我想做这个
xmllint --xpath "//filestodelete[filename = somename]/text()" #filestodelete#
并且filestodelete是XML类型的BPEL变量
但它不起作用
该怎么做>?
最佳答案
假设您已将查询文本放在名为query
的shell变量中(以使我的示例更简洁)-
使用bash,您可以使用herestring:
xmllint --xpath "$query" - <<<"$filestodelete"
使用POSIX sh,您需要使用heredoc:
xmllint --xpath "$query" - <<EOF
$filestodelete
EOF
顺便说一句-由于并非
xmllint
的所有版本都支持--xpath
,因此,如果您使用XMLStarlet作为替代,则在各个发行版之间将具有更好的兼容性,该支持从其初始创建就支持以下内容:xmlstarlet sel -t -m "$query" -v . <<<"$filestodelete"