我有與它的價值需要,只要它的值爲零,要更新的特定屬性(身份識別碼)的文件。該文件看起來像這樣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