如何解决检索XML标签内的内容
我有一个包含大量信息的大型XML,我对提取以下标签(config:tag1)的内容特别感兴趣
<config:tag1 var1="a" var2="b" var3="c"
var4="d">
<config:tag2 var5="abc" var6="def">
<config:tag3 var7="foo1" var8="foo2" />
</config:tag2>
</config:tag1>
<config:tag1 var1="h" var2="i" var3="j"
var4="y">
<config:tag2 var5="klm" var6="nop">
<config:tag3 var7="foo3" var8="foo4" />
</config:tag2>
</config:tag1>
<config:tag1 var1="m" var2="n" var3="o"
var4="z">
<config:tag2 var5="rop" var6="stv">
<config:tag3 var7="foo5" var8="foo6" />
</config:tag2>
</config:tag1>
我尝试过sed
sed -n '/config:tag1/{s/.*<config:tag1>//;s/<\/config:tag1.*//;p;}' file.xml
,awk
awk -F "[><]" '/config:tag1/{print $3}' file.xml
和grep
grep -oP '(?<=<config:tag1>).*(?=</config:tag1)' file.xml
没有成功,我在做什么错了?
预期的输出将是包含所有内容的行
<config:tag1 var1="a" var2="b" var3="c" var4="d"> <config:tag2 var5="abc" var6="def"> <config:tag3 var7="foo1" var8="foo2" />
</config:tag2> </config:tag1>
<config:tag1 var1="h" var2="i" var3="j" var4="y"> <config:tag2 var5="klm" var6="nop"> <config:tag3 var7="foo3" var8="foo4" />
</config:tag2> </config:tag1>
<config:tag1 var1="m" var2="n" var3="o" var4="z"> <config:tag2 var5="rop" var6="stv"> <config:tag3 var7="foo5" var8="foo6" />
</config:tag2> </config:tag1>
解决方法
如果我自己也有类似的问题。当您看到“ 我用您的数据对此进行了测试,awk '{
if(NR!=1 && $1 == "<config:tag1"){
print ""
}
printf("%s ",$0)
}
END{
print ""
}' file.xml
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。