我有输入,那里有几个disp-quote
节点。
这是正确的Xpath:body//sec/disp-quote/p
输入:
<body>
<sec>
<disp-quote>
<p>Test</p>
</disp-quote>
</sec>
<sec>
<sec>
<disp-quote>
<p>Test</p>
</disp-quote>
</sec>
</sec>
<body>
输出应为:
<context type="QuoteUsed" id="dq001"/>
<context type="QuoteUsed" id="dq002"/>
id
属性应使用“ dq”,后跟一个以升序进行迭代的3位数字(例如dq001,dq002,dq003等)
尝试过的代码:
<context type="QuoteUsed">
<xsl:attribute name="id">
<xsl:value-of select="concat('dq','')"/>
</xsl:attribute>
</context>
答案 0 :(得分:2)
检查以下代码:-
<xsl:template match="sec/disp-quote/p">
<context type="QuoteUsed">
<xsl:attribute name="id">
<xsl:text>dq</xsl:text><xsl:number level="any" format="001"/>
</xsl:attribute>
</context>
答案 1 :(得分:2)
尝试一下
<xsl:for-each select="body//sec/disp-quote/p">
<context type="QuoteUsed">
<xsl:attribute name="id">
<xsl:value-of select="concat('dq',format-number(position(), '000'))"/>
</xsl:attribute>
</context>
</xsl:for-each>
答案 2 :(得分:0)
或者不久之后:
<context type="QuoteUsed" id="dq{format-number(position(), '000')}"/>
请参阅:https://www.w3.org/TR/1999/REC-xslt-19991116#attribute-value-templates