我正在尝试从这个 xml 示例中获取
<String Name="descResist">
<Description><![CDATA["resist_type_chimney"]]></Description>
<Flags>
<ParFlg_Child/>
</Flags>
<Value><![CDATA["90_min."]]></Value>
</String>
这
descResist;resist_type_chimney
descResist;90_min.
所以,基本上我需要提取 CDATA 内容并将其与 Name 的值连接起来。
问题之一是,它并不总是在标签中String
......也可能是Integer
, Title
, Boolean
, 等等......
我试过这个
$ grep -o "Name=\".*\"\|<\!\[CDATA\[.*\]\]>" file.xml | sed 's/<\!\[CDATA\[\"\(.*
\)\"\]\]>/\1/'
这给了我
Name="descResist"
resist_type_chimney
90_min.
如何在下一行前面加上 Name 字符串的值?
像
Name="descResist"
resist_type_chimney
90_min.
Name="anotherName"
foo_bar
Name="anoooother"
Name="notempty"
bar_foo
它变得有点复杂。
像这样使用 XML 也很好?也应该有任何嵌套<tagType Name=...
,所以我想这应该不是问题。
编辑:我正在 cygwin 上寻找 bash/sed/awk 简单的解决方案。