XMLファイルの他の特定のタグに含まれる特定のタグの名前を変更する方法

XMLファイルの他の特定のタグに含まれる特定のタグの名前を変更する方法

指定された別のタグ内に含まれる指定されたタグに対してのみ、1つのタグ値を別のタグ値に置き換えるxmlstarletコマンドは何ですか?

例: すべてのタグ発生を検索します。そのタグがタグ内(他のタグ内)にある場合にのみ、次のようbに置き換える必要があります。d<a> ... </a>

  • 入力例:
    <c>This is <b>an example</b>. <a>This is <b>a test;</b></a></c>
    
  • 希望の出力:
    <c>This is <b>an example</b>. <a>This is <d>a test;</d></a></c>
    

この記事は関連しています指定されたいくつかのタグの特定の文字列をXMLファイルのタグに含まれる他の文字列に置き換える方法ソリューションでxmlファイルの種類を指定する方法を見つけようとしています。

ベストアンサー1

$ cat file 
<c>This is <b>an example</b>. <a>This is <b>a test;</b></a></c>
$ xmlstarlet ed --rename '//a/b' -v 'd' file 
<?xml version="1.0"?>
<c>This is <b>an example</b>. <a>This is <d>a test;</d></a></c>

bこれにより、ノードのすぐ下に表示されるaすべてのノードの名前が変更されます。これらのノードの新しい名前はですd。 XPath式の前でこれを使用しているため、ドキュメント//構造内のノードがどこにあるかは重要ではありませんa/ba

おすすめ記事