將具有唯一標識符的標籤插入 XML
我可以使用xmlstarlet以這種方式將具有自定義固定值的新節點添加到我的 XML 文件中:
xmlstarlet ed --subnode "/legge190/data/lotto" --type elem -n newsubnode \ -v "myvalue"
但是如何添加唯一標識符?
如果我嘗試使用添加唯一標識符
generate-id(.)
xmlstarlet ed --subnode "/legge190/data/lotto" --type elem -n newsubnode \ -v "generate-id(.)"
我沒有 id 值,而是
generate-id(.)
字元串。謝謝
xsl
我已經用這樣的文件解決了:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="cig"> <lottoID><xsl:value-of select="generate-id(.)"/></lottoID> <!-- a linefeed --> <xsl:text>
</xsl:text> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet>
由XPATH 函式
id
生成。generate-id
<lottoID>
通過這種方式,我複制所有節點並在元素之前的元素中插入一個唯一標識符<cig>
(這是我的輸入 XML 文件的一個元素)。xmlstarlet的命令 是:
xmlstarlet tr stile.xsl input.xml