이렇게 하면 사용자 정의 고정 값이 있는 새 노드를 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>
</xsl:text>
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
id
XPATH 함수에 의해 생성됩니다 generate-id
.
이런 방식으로 모든 노드를 복사하고 <lottoID>
요소 앞에 고유 식별자를 삽입합니다 <cig>
(이것이 내 요소입니다).XML 파일 입력).
이 명령은 다음과 같습니다.xmlstarlet 예:
xmlstarlet tr stile.xsl input.xml