我想提取所有相应<InFrame>
代码的<SOUNDCHEK>
代码信息数据
文件中所有<Inframe>
标记的数据为:-1 0 2 4 7
但我只希望来自<Inframe>
标记的<SOUNDCHEK>
信息:2 4 7 [所需输出]
<APP>
<Name>MainCheck</Name>
<ActiveField>True</ActiveField>
<InFrame>-1</InFrame>
<CAMRECORD>
<Name>Camera01</Name>
<ActiveField>True</ActiveField>
<InFrame>0</InFrame>
</CAMRECORD>
<SOUNDCHEK>
<Name>Sound1.wav</Name>
<ActiveField>True</ActiveField>
<InFrame>2</InFrame>
</SOUNDCHEK>
<SOUNDCHEK>
<Name>Sound2.wav</Name>
<ActiveField>True</ActiveField>
<InFrame>4</InFrame>
</SOUNDCHEK>
<SOUNDCHEK>
<Name>Sound3.wav</Name>
<ActiveField>True</ActiveField>
<InFrame>7</InFrame>
</SOUNDCHEK>
</APP>
答案 0 :(得分:1)
使用 xmlstalet
工具:
xmlstarlet sel -t -v "//SOUNDCHEK/InFrame" -n input.xml
//SOUNDCHEK/InFrame
- xpath表达式,用于选择InFrame
个节点的子节点的所有SOUNDCHEK
个节点输出:
2
4
7
http://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.html#idm47077139652416
答案 1 :(得分:0)
尝试使用xmllint并使用xpath选择所需的数据。
xmllint --xpath '/APP/SOUNDCHECK/InFrame/text()' file.xml