<xml>
<email>[email protected]</email>
<email>[email protected]</email>
<email>[email protected]</email>
<host>
<ip>56.456.155.423, 54.455.155.654, 544.47.745.80, 54.192.155.842</ip>
<hostname>abc.cutshort.io</hostname>
</host>
<host>cdn.cutshort.io</host>
<host>
<ip>56.456.155.423, 54.455.155.654, 544.47.745.80, 54.192.155.842</ip>
<hostname>abc.cutshort.io</hostname>
</host>
<host>www.cutshort.io</host>
<host>blogdata.cutshort.io</host>
<host>cdn.cutshort.io</host>
</xml>
我想提取“host”的值,而不提取“hostname”或“ip”的值。输出应该如下所示:
cdn.cutshort.io
www.cutshort.io
blogdata.cutshort.io
cdn.cutshort.io
我最近才开始解析 xml,所以请耐心等待。任何帮助将不胜感激!
答案1
host
您可以打印没有属性的 XPATH的值hostname
:
$ xmlstarlet sel -t -v '//host[not(hostname)]' -n file.xml
cdn.cutshort.io
www.cutshort.io
blogdata.cutshort.io
cdn.cutshort.io
(//host[not(ip)]
在这里同样会做得很好)。