我正在在具有下面的结构的XML文档上进行XSL变换。
<text_collection>
<text key="score_1"> Score 1 <br/> Good. </text>
<text key="score_2"> Score 2 <br/> Poor. </text>
</text_collection>
我的XSLT很简单,是
<xsl:template mode="codes" match="text">
<li>
<xsl:value-of select="."/>
</li>
</xsl:template>
但是我面临的问题是,当创建HTML时,<br/>
丢失了。在文档中,我只得到
<ul>
<li> Score 1 Good. </li>
<li> Score 2 Poor. </li>
</ul>
任何人都可以让我知道为什么<br/>
被丢弃?
谢谢..
而不是:
<xsl:value-of select="."/>
使用:
<xsl:copy-of select="node()"/>
这将把文本和元素节点同时传输到输出树。
xsl:value-of
复制您的文本,但不会复制其中的嵌套元素。
例如,您可以执行此操作(在您先前选择的所有文本之后,要实现一条线路。
<xsl:copy-of select="./br"/>
,但这是没有用的,您也可能会写:
<br/>
直接在您的文档中。
如果可能的话,我会考虑重组您的XML文档。您可以在<text>
元素下添加<Lines>
。然后,您可以将value:of
获取每行,并根据需要进行换行。