要获取特定属性值的值为 True 或 False,具有不均匀的列

要获取特定属性值的值为 True 或 False,具有不均匀的列

我有一个文件,其中包含以下两行。我需要检查 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>

Connector那么你可以使用 XMLStarlet 来提取所有节点xpoweredBy属性的值

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

XPath 表达式//Connector/@xpoweredBy将选择整个文档中xpoweredBy每个Connector节点的所有属性,XMLStarlet 将以换行符分隔打印这些值。

相关内容