【发布时间】:2014-05-11 19:54:40
【问题描述】:
我正在尝试从 XML 进行 XSLT 转换,我想将字体样式标签转换为 HTML 标签,但是我做错了。 我的 XML 文件是这样的:
<root>
<p>
<span>
<i/>
italic
</span>
<span>
<i/>
<b/>
bold-italic
</span>
<span>
normal
</span>
</p>
</root>
我想要的是具有相同标签的 HTML,但我的 XSLT 转换不起作用: HTML:
<p>
<i>italic</i>
<i><b>bold-italic</b></i>
normal
<p>
我正在尝试 xsl:if 条件但它不起作用,我不知道我做错了什么: XSLT:
<xsl:template match="p">
<p>
<xsl:for-each select="span">
<xsl:if test="i">
<i>
<xsl:value-of select="."/>
</i>
</xsl:if>
<xsl:if test="b">
<b>
<xsl:value-of select="."/>
</b>
</xsl:if>
</xsl:for-each>
</p>
</xsl:template>
你知道如何修复我的代码吗?
【问题讨论】:
-
在开始编写代码之前,您能否解释一下转换背后的逻辑?您有一个包含 empty
<i/>元素和一些文本的跨度;为什么这会导致输出中的文本 inside 是<i>元素? -
我解析了大的 .odt 文档。接收字体样式的最快方法是,每个 span 或 p 元素都附加新标签 、 或两者都