我有包含新闻报道的XML文档,以及新闻报道的主体元素包含p标签之间的纯文本。 当我使用XSL来检索体,如
<xsl:value-of select="body" />
在p标签似乎得到剥离出来。 我使用Visual Studio 2005中的实现XSL的。
没有人有任何想法如何避免这种情况? 谢谢。
我有包含新闻报道的XML文档,以及新闻报道的主体元素包含p标签之间的纯文本。 当我使用XSL来检索体,如
<xsl:value-of select="body" />
在p标签似乎得到剥离出来。 我使用Visual Studio 2005中的实现XSL的。
没有人有任何想法如何避免这种情况? 谢谢。
尝试使用
<xsl:copy-of select="body"/>
代替。 从w3School的上相同的文档 :
所述
<xsl:copy-of>
元素创建当前节点的副本。注:命名空间节点,子节点和当前节点的属性被自动复制的!
如果你没有在输入文档控制,复制的应工作:
从http://www.xml.com/pub/a/2000/06/07/transforming/index.html
“在xsl:复制的元件,在另一方面,可以复制,模板选择每个节点的整个子树包括属性,如果XSL的:复制的元件的选择属性具有适当的值在下面的例子。 ,模板副本标题元素节点及其所有子节点的 - 换句话说,完整的标题元素,包括他们的标签,子元素和属性:”
<xsl:template match="title">
<xsl:copy-of select="*"/>
</xsl:template>
如果你在输入文档控制, CDATA是正确的道路要走。
XML元素的值 - 这不只是在XSLT但DOM实现真正的 - 是它的所有后代文本节点的连接。 在XSLT, value-of
发射一个元素的值,而copy-of
发射元件的一个副本。
这是因为在发动机解释<p>标签(不包括它的输出)。 你需要指定你想要的内容“因为它是”使用“禁用输出转义= YES | NO”属性。
<xsl:value-of select="body" disable-output-escaping="yes"/>