我有这个XML文件:
$ cat conditional.xml
<a>
<b></b>
<c></c>
</a>
$ xmlstarlet sel -t -m '/a/*' -v 'concat("hello ",name())' -n conditional.xml
hello b
hello c
我想做一些有条件的事情。我想对元素'a'说“你好”,我想对元素'b'说“你好”。这基于事先已知的元素的名称。
答案 0 :(得分:0)
您可以使用--if --else --break
(或-i --else -b
)构造(请参阅the docs):
$ xmlstarlet sel -t -m '/a/*' \
--if 'name()="b"' -o "hello " --else -o 'howdy ' --break \
-v 'name()' -n conditional.xml
hello b
howdy c