Macos 如何使用bash和xmlint解析adobexmlswidtag
下面是一个用于跟踪库存的Adobe XML swidtag示例。我需要使用bash解析出相关信息,并将其输出到新的文本文件中。仅供参考,我正在mac上使用终端 例如,我想分析以下内容Macos 如何使用bash和xmlint解析adobexmlswidtag,macos,bash,unix,namespaces,xmllint,Macos,Bash,Unix,Namespaces,Xmllint,下面是一个用于跟踪库存的Adobe XML swidtag示例。我需要使用bash解析出相关信息,并将其输出到新的文本文件中。仅供参考,我正在mac上使用终端 例如,我想分析以下内容 swid:entitlement_required_indicator swid:product_title swid:product_version swid:name swid:numeric swid:major swid:minor swid:build swid:review 我试过使用 xmllint
swid:entitlement_required_indicator
swid:product_title
swid:product_version
swid:name
swid:numeric
swid:major
swid:minor
swid:build
swid:review
我试过使用
xmllint --xpath '//swid:product_version/swid:name/text()' nameoffile.xml
Creative Suite 5的示例标记文件
以下示例适用于序列化为Creative Suite 5 Master Collection Suite的Adobe Photoshop CS5
<?xml version="1.0" encoding="utf-8"?>
<swid:software_identification_tag xsi:schemaLocation="http://standards.iso.org/iso/19770/-2/2008/schema.xsd software_identification_tag.xsd"
xmlns:swid="http://standards.iso.org/iso/19770/-2/2008/schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!--Mandatory Identity elements -->
<swid:entitlement_required_indicator>true</swid:entitlement_required_indicator>
<swid:product_title>Acrobat XI Pro</swid:product_title>
<swid:product_version>
<swid:name>1.0</swid:name>
<swid:numeric>
<swid:major>1</swid:major>
<swid:minor>0</swid:minor>
<swid:build>0</swid:build>
<swid:review>0</swid:review>
</swid:numeric>
</swid:product_version>
<swid:software_creator>
<swid:name>Adobe Systems Incorporated</swid:name>
<swid:regid>regid.1986-12.com.adobe</swid:regid>
</swid:software_creator>
<swid:software_licensor>
<swid:name>Adobe Systems Incorporated</swid:name>
<swid:regid>regid.1986-12.com.adobe</swid:regid>
</swid:software_licensor>
<swid:software_id>
<swid:unique_id>CreativeCloud-CS6-Mac-GM-MUL</swid:unique_id>
<swid:tag_creator_regid>regid.1986-12.com.adobe</swid:tag_creator_regid>
</swid:software_id>
<swid:tag_creator>
<swid:name>Adobe Systems Incorporated</swid:name>
<swid:regid>regid.1986-12.com.adobe</swid:regid>
</swid:tag_creator>
<!--Optional Identity elements -->
<swid:license_linkage>
<swid:activation_status>activated</swid:activation_status>
<swid:channel_type>SUBSCRIPTION</swid:channel_type>
<swid:customer_type>RETAIL</swid:customer_type>
</swid:license_linkage>
<swid:serial_number>909702426602037824854600</swid:serial_number>
</swid:software_identification_tag>
也许我误解了你的问题。为什么不呢
grep'bash可能不是解析html或xml的正确工具。使用其他语言(如perl或python)中的专用库,或者安装XMLET。在S.O.上的许多帖子将告诉你如何使用它。否则,请发布您使用xmllint所做的尝试以及失败的原因。如果您收到任何错误消息,完整的错误消息文本也很有用。祝你好运。请发布你收到的错误消息/输出?我使用过xmllint,它工作起来很有魅力…[如何使用xmllint和BASH解析XML文件中的名称空间][1][1]: