我有与它的价值需要,只要它的值为零,要更新的特定属性(身份识别码)的文件。该文件看起来像这样XSLT匹配模板更改属性只是一次
<?xml version="1.0" encoding="UTF-8"?><Summary>
<Section myId="0">
<Section myId="0">
<Para>...</Para>
</Section>
<Section myId="5">
<Para>...</Para>
</Section>
</Section>
</Summary>
我使用的模板,以便将其设置为从调用程序通过一个唯一的ID匹配的属性,身份识别码,但我只是想匹配文档中的属性之一。任何值为零的附加属性都将通过传递不同的ID进行更新。 我的模板,我使用的是这个样子的:
<xsl:template match = '@myId[.="0"]'>
<xsl:attribute name = "{name()}">
<xsl:value-of select = "$addValue"/>
</xsl:attribute>
</xsl:template>
值的addValue是从调用程序通过一个全局参数。 我已经搜索了一天中很大一部分的答案,但是我无法仅将该模板应用一次。输出将使用addValue的内容替换myId值。 我尝试过匹配'@myId [。“0”] [1]“,我尝试使用position()函数进行匹配,但我的模板总是应用于所有myId为零的属性。
是否有可能适用的匹配模板只有一次?
尝试使用位于计数为0的'之前'轴。 – 2012-05-05 02:02:05