如何保留标记标记?

gil*_*s27 17 xml xslt

我有一个包含新闻故事的XML文档,新闻故事的主体元素在纯文本中包含p标签.当我使用XSL检索身体时,例如

<xsl:value-of select="body" />
Run Code Online (Sandbox Code Playgroud)

p标签似乎被剥离了.我正在使用Visual Studio 2005的XSL实现.

有没有人有任何想法如何避免这种情况?谢谢.

Bla*_*rad 24

尝试使用

<xsl:copy-of select="body"/>
Run Code Online (Sandbox Code Playgroud)

代替.从w3schools的文档相同:

<xsl:copy-of>元素创建当前节点的副本.

注意:名称空间节点,子节点和当前节点的属性也会自动复制!


Eug*_*atz 5

如果您无法控制输入文档,则 copy-of 应该可以工作:

来自http://www.xml.com/pub/a/2000/06/07/transforming/index.html

“另一方面,xsl:copy-of 元素可以复制模板选择的每个节点的整个子树。这包括属性,如果 xsl:copy-of 元素的 select 属性具有适当的值。在以下示例中,模板复制标题元素节点及其所有后代节点——换句话说,完整的标题元素,包括它们的标签、子元素和属性:”

<xsl:template match="title">
  <xsl:copy-of select="*"/>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)