に特定のテキストを含む子供を抽出するために:ここでxmllint:どのように私は例としてXMLを以下している別のXML
<Config>
<Version>0</Version>
<Model>My model</Model>
<ParameterList>
<Parameter>
<Name>Device.Modelname</Name>
<Value>XC60</Value>
</Parameter>
<Parameter>
<Name>Device.Size</Name>
<Value>4</Value>
</Parameter>
<Parameter>
<Name>Tyre.Size</Name>
<Value>20</Value>
</Parameter>
<Parameter>
<Name>Tyre.Model</Name>
<Value>WATSU</Value>
</Parameter>
</ParameterList>
</Config>
は、私は新しい(別の)XMLファイルとして達成したいものです。だから、私は条件を満たす子供の一部を抽出し、それらの子だけを含む新しいxmlファイルを作成したいと思います。
<Config>
<ParameterList>
<Parameter>
<Name>Device.Size</Name>
<Value>4</Value>
</Parameter>
<Parameter>
<Name>Tyre.Model</Name>
<Value>WATSU</Value>
</Parameter>
</ParameterList>
</Config>
基準は、子の名前がDevice.SizeまたはTyre.Modelであることです。
私はそれぞれの子をループしてgrepをかxarg'ing bashスクリプト内の値ではなく、xmllint自体にこれを達成するための簡単な方法がある場合は、私が思っていたみました。
私は(いくつかのヒットである必要があり、SO検索)恒等変換構築し、あなたが空のテンプレート、例えばによりたくないすべてのものを除外し、XSLTを使用してお勧めしたいです'Version'、' Model'と必要としないパラメータとのマッチングを行います。 xsltprocは、libxml/xmllintスイートの下の別のプログラムです。 –