使用shell解码xml的值
问题描述:
我想解码xml中的值。请在下面找到一个示例。这将是多个块。我需要找到标签并解码内容并生成相同的输出。我只是在开始脚本的过程中。使用shell解码xml的值
<SOAP-ENV:Body>
<log-entry serial="abcde" domain="abc">
<date>Tue Oct 17 2017</date>
<time utc="abcde">14:14:30</time>
<type>all</type>
<class>ccccc</class>
<object>Web_Token</object>
<level num="5">notice</level>
<transaction>xxxxx</transaction>
<global-transaction-id>xxxxx</global-transaction-id>
<client>X.X.X.X</client>
<message>
<base64>**encodeddata**</base64>
</message>
</log-entry>
</SOAP-ENV:Body>
i need output
<SOAP-ENV:Body>
<log-entry serial="abcde" domain="abc">
<date>Tue Oct 17 2017</date>
<time utc="abcde">14:14:30</time>
<type>all</type>
<class>ccccc</class>
<object>Web_Token</object>
<level num="5">notice</level>
<transaction>xxxxx</transaction>
<global-transaction-id>xxxxx</global-transaction-id>
<client>X.X.X.X</client>
<message>
<base64>**decodeddata**</base64>
</message>
</log-entry>
</SOAP-ENV:Body>
我在迭代过程中,从解码值开始。
sed -n 's/<base64>\(.*\)<\/base64>/\1/p' log.txt | base64 --decode
谢谢。
答
试试这个:
xmllint --xpath '//message/base64/text()' file.xml 2>/dev/null |
base64 -d -
又有什么问题? – AlexP
不要用sed解析xml。你能够安装XML解析器吗? – RomanPerekhrest