不均等な列を使用して特定のプロパティ値をTrueまたはFalseとして取得するには

不均等な列を使用して特定のプロパティ値をTrueまたはFalseとして取得するには

次の2行を含むファイルがあります。 xpoweredBy値がtrueかfalseかを確認する必要があります。よろしくお願いします。

    <Connector clientAuth="false" sslProtocol="TLS" xpoweredBy="false" allowTrace="false" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" xpoweredBy="false" allowTrace="false" />

答え1

次のようによく構成されたXML文書があるとします。

<?xml version="1.0"?>
<root>
  <Connector clientAuth="false" sslProtocol="TLS" xpoweredBy="false" allowTrace="false"/>
  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" xpoweredBy="false" allowTrace="false"/>
</root>

ConnectorxpoweredByその後、XMLStarletを使用してすべてのノード属性の値を抽出できます。

$ xmlstarlet sel -t -v '//Connector/@xpoweredBy' -nl file.xml
false
false

XPath式は文書全体で各ノードのすべての属性を//Connector/@xpoweredBy選択し、XMLStarletは改行で区切られた値を印刷します。xpoweredByConnector

関連情報