有谁知道用什么XSLT将以下内联XML元素转换为相应的HTML?
XML:
<line><b c="foo1" /> bar <b c="foo2" /> bar <b c="foo3" /> bar</line>
HTML:
<p><span class="x">foo1</span> bar <span class="x">foo2</span> bar <span class="x">foo3</span> bar </p>
我可以迭代我文件中的每个'line',我可以遍历每一行中的每个'b',但是在输出中输出'line'的整个文本内容然后在文本后面附加属性。这是我正在使用的代码。我理解为什么以下代码不能满足我的要求。我只是不知道如何编写XSLT来做我想做的事。
<xsl:for-each select=".../line">
<p>
<xsl:value-of select="text"/>
<xsl:for-each select="text/b">
<span class="x">
<xsl:value-of select="@c"/>
</span>
</xsl:for-each>
</p>
</xsl:for-each>
答案 0 :(得分:1)
<xsl:template match="line">
<p>
<xsl:apply-templates/>
</p>
</xsl:template>
<xsl:template match="b[@c]">
<span class="x">
<xsl:value-of select="@c"/>
</span>
</xsl:template>
应该足够(因为文本节点被内置模板复制)。