xmlタグとその値を同じルートタグの下にある別のxmlファイルにコピーする方法

xmlタグとその値を同じルートタグの下にある別のxmlファイルにコピーする方法

xmlタグとその値を同じルートタグの下にある別のxmlファイルにコピーする必要があります。ルートタグがない場合は生成します。

以下は入力と出力の例です。

INPUT: string.xml
<resource>
    <string name="app_name">MyExampleApp</string>
    <string name="profile">My Profile</string>
    <string name="messages">My Messages</string>
</resource>

$ command "profile" string.xml string1.xml

OUTPUT: string1.xml
<resource>
    <string name="profile">My Profile</string>
</resource>

私は「コマンド」とオプションを探していました。必ずしもこの順序である必要はありません。助けてください。すべてのLinux/Unix/Macコマンドが可能です。

答え1

使用XMLスター、あなたはできます削除stringname属性が次ではないルートノードの下のすべてのノードprofile:

$ xml ed -d '/resource/string[@name != "profile"]' string.xml
<?xml version="1.0"?>
<resource>
  <string name="profile">My Profile</string>
</resource>

XML宣言行が必要ない場合は、-O後で追加してください。ed

関連情報