Xml

將具有唯一標識符的標籤插入 XML

  • September 25, 2017

我可以使用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

引用自:https://unix.stackexchange.com/questions/394162