<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>
「hostname」や「ip」の値を抽出せずに「host」の値だけを抽出したいと思います。出力は次のようになります。
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)]
ここでも大丈夫だと思います)。