我正在对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/>
被丢弃了?
谢谢..
答案 0 :(得分:1)
xsl:value-of
复制您的文字,但不会复制其中的嵌套元素。
例如,您可以执行此操作(在您之前选择的所有文本之后实现换行符。
<xsl:copy-of select="./br"/>
但是你可能会写下来,这将毫无用处。
<br/>
直接在您的文档中。
如果可能的话,我会考虑重构您的XML文档。您可以在<Lines>
元素下添加<text>
。然后,您可以获取value:of
每行,并根据需要通过换行符跟踪它。
答案 1 :(得分:1)
而不是:
<xsl:value-of select="."/>
使用:
<xsl:copy-of select="node()"/>
这会将文本和元素节点都传输到输出树。