0

これらのコンテンツを含むこのtest.xmlファイルがあるとします

<d>
  <p>
    <n>hi</n>
    <r>
      <s>1.0</s>
    </r>
  </p>

  <p>
    <n>hello</n>
    <r>
      <s>1.0</s>
    </r>
  </p>
</d>

以下に示すように、「hello」オブジェクトに新しい <s>2.0</s> を追加したいと思います。

<d>
  <p>
    <n>hi</n>
    <r>
      <s>1.0</s>
    </r>
  </p>

  <p>
    <n>hello</n>
    <r>
      <s>1.0</s>
      <s>2.0</s>
    </r>
  </p>
</d>

シェルスクリプトを使用してこれを行う必要があります。XML DOM を検索し、ここで指定された xmlstarlet を使用してタグを追加する方法がありますhttp://www.technomancy.org/xml/add-a-subnode-command-line-xmlstarlet/。ただし、これは、属性値に基づいて特定のノードに新しいタグを追加することのみを説明しています。私には何の属性もありません。どうすればできますか?grep を使用してそれを行う方法はありますか?

4

1 に答える 1

3
xmlstarlet ed -a '//p[n="hello"]/r/s' -t elem -n s -v 2.0 input.xml

説明:

  • ed==>編集
  • -a==>追加
  • -t==>タイプ
  • -n==> 名前
  • -v==>値
于 2012-03-19T00:40:51.030 に答える