僅當子元素不具有相同的屬性時,如何將屬性傳遞給子元素?如果子元素不具有相同的屬性,則XSL將屬性傳遞給子元素
XML:
<section>
<container attribute1="container1" attribute2="container2">
<p attribute1="test3"/>
<ol attribute2="test4"/>
<container>
<section/>
輸出應該是這樣的:
<section>
<p attribute1="test3" attribute2="test2"/>
<ol attribute1="container1" attribute2="test4"/>
</section>
這是我的嘗試:
<xsl:template match="container">
<xsl:apply-templates mode="passAttributeToChild"/>
</xsl:template>
<xsl:template match="*" mode="passAttributeToChildren">
<xsl:element name="{name()}">
<xsl:for-each select="@*">
<xsl:choose>
<xsl:when test="name() = name(../@*)"/>
<xsl:otherwise>
<xsl:copy-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:apply-templates select="*|text()"/>
</xsl:element>
</xsl:template>
任何幫助,將不勝感激;)謝謝你提前!
應該可以工作,但Tomalak的解決方案更容易適用於我的樣式表。無論如何非常感謝你。 – user2652424