您能告诉我如何在文件中的两个标签之间获取文本。在我的文件中有很多标签。下面的行是在文件中提取的。我需要获得ACTIONSUM作为输出。 <TableName modified='1' type='string'> and </TableName> tags
之间的文字。
输入:
</WriteMode><TableName modified='1' type='string'><![CDATA[ACTIONSUM]]></TableName><EnableCaseSensitiveIDs type='bol'>
输出继电器:
ACTIONSUM
请建议使用命令或脚本来进行grep。
提前致谢。
答案 0 :(得分:0)
使用适当的XML解析工具,例如xmlstarlet
:
xmlstarlet sel -t -c '//TableName[@modified="1" and @type="string"]' -v . filename.xml
或xmllint
:
xmllint --nocdata --xpath '//TableName[@modified="1" and @type="string"]/node()' filename.xml
使用像sed这样的基于行的工具会导致当XML的格式以良性方式发生变化(例如插入换行符或改组/添加新属性)时会出现问题,这是人们无法预料的。