假设我想使用(符合 POSIX 的)shell 脚本创建下一个 XML 文件:
<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
动作做到这一点?