고유 식별자가 포함된 태그를 XML에 삽입

고유 식별자가 포함된 태그를 XML에 삽입

이렇게 하면 사용자 정의 고정 값이 있는 새 노드를 XML 파일에 추가할 수 있습니다.xmlstarlet:

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 값은 없지만 string generate-id(.).

감사해요

답변1

저는 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>&#xa;</xsl:text>
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>
</xsl:stylesheet>

idXPATH 함수에 의해 생성됩니다 generate-id.

이런 방식으로 모든 노드를 복사하고 <lottoID>요소 앞에 고유 식별자를 삽입합니다 <cig>(이것이 내 요소입니다).XML 파일 입력).

이 명령은 다음과 같습니다.xmlstarlet 예:

xmlstarlet tr stile.xsl input.xml

관련 정보