例如,我要一個屬性添加到這個節點:如何使用XSLT在XML中設置屬性?
<Party>
所以它看起來像:
<Party role="this should be set using XPath">
屬性值必須來自XPath的。
下將無法正常工作:)
<Party role=<xsl:value-of select="some/xpath/path"/>>
如何做到這一點?文字結果元素的
例如,我要一個屬性添加到這個節點:如何使用XSLT在XML中設置屬性?
<Party>
所以它看起來像:
<Party role="this should be set using XPath">
屬性值必須來自XPath的。
下將無法正常工作:)
<Party role=<xsl:value-of select="some/xpath/path"/>>
如何做到這一點?文字結果元素的
屬性支持屬性值模板語法,使用{}
:
<Party role="{some/xpath/path}">
<xsl:template match="Party">
<Party role="{some/xpath/path}">
<xsl:apply-templates select="@* | node()"/>
</Party>
</xsl:template>
應該做的。作爲替代
<xsl:template match="Party">
<xsl:copy>
<xsl:attribute name="role" select="some/xpath/path"/>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
當然,如果有屬性和/或子節點你也想被處理(例如通過身份轉換模板進行復制)的應用模板僅僅是必要的。
你可以試試下面的示例:
<xsl:for-each select="YOUR_SELECT_PATH">
<a>
<Party> <xsl:attribute name="role"><xsl:value-of select="@source"/></xsl:attribute> </Party>
<xsl:value-of select="."/>
</a>
</xsl:for-each>
這裏我設置屬性角色的XML節點黨。