我想这样做
xmllint --xpath "//filestodelete[filename = somename]/text()" #filestodelete#
和filestodelete是XML
类型的BPEL变量但它不起作用
怎么做> ??
答案 0 :(得分:7)
假设您已将查询文本放在名为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"