我有一個相當愚蠢的問題。我如何確保我的XML混合內容節點不會混淆?例如,我有一個類似這樣的XML結構。XSLT混合內容節點
<root>
<book>
<title>Stuff</title>
<description> This book is <i>great</i> if you need to know about stuff.
I suggest <link ref="Things">this one</link> if you need to know
about things. </description>
</book>
[other books]
</root>
我需要的最終內容,看起來像這樣
<h1>List of books</h1>
<h2><a name="Stuff"/>Stuff</h2>
<p> This book is <i>great</i> if you need to know about stuff.
I suggest <a href="#Things">this one</a> if you need to know
about things. </p>
但我不能提取文本節點的部分,我總是搶了整個事情。我正在使用後代軸。任何線索我做錯了什麼?
這裏是我的XSLT:
<xsl:template match="description/*">
<xsl:for-each select="following-sibling::*">
<xsl:choose>
<xsl:when test="name(.)='link'">
<a href="{@ref}"><xsl:value-of select="."/></a>
</xsl:when>
<xsl:when test="name(.)='em'">
<em><xsl:value-of select="."/></em>
</xsl:when>
<xsl:otherwise><p><xsl:value-of select="."/></p></xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
請注意,封閉的XML和HTML結果僅僅是例子,我不得不面對它,我不封閉在,爲了清楚起見,一個更大的結構。
介意分享一下你的xslt嗎? – 2009-10-06 12:25:06
XSLT已被共享。 – 2009-10-06 12:34:23