如何在xmlstarlet中做条件

时间:2017-03-20 23:00:53

标签: xml xmlstarlet

我有这个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'说“你好”。这基于事先已知的元素的名称。

1 个答案:

答案 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