次の XML ファイルを (POSIX 準拠の) シェル スクリプトで作成したいとします。
<xml>
<item>
<title>The Turning Point to a Cross Fade in a Carpark</title>
<slug>the-turning-point-to-a-cross-fade-in-a-carpark</slug>
</item>
<item>
<title>The Cycle Continues in One Direction</title>
<slug>the-cycle-continues-in-one-direction</slug>
</item>
</xml>
しかし、私は次のものしか持っていません:
<xml>
<item>
<title>The Turning Point to a Cross Fade in a Carpark</title>
</item>
<item>
<title>The Cycle Continues in One Direction</title>
</item>
</xml>
XMLStarletを使用するedit --update
と (および のみ--update
)、次の形式で文字列値の代わりに XPath 式を使用できます。
xml ed -u '/xml/item/slug' -x '../title/text()'
しかし、XPath 2.0 文字列関数は機能していないようです ( xmlXPathCompOpEval: function lower-case not found
)。<title>
次に、すべてのブロックを繰り返し処理し、要素のテキスト値を使用して要素を生成するにはどうすればよい<slug>
でしょうか? xml
最小限のアクションでこれを行うにはどうすればよいですか?