2011-05-31 60 views
0

我试图用相应的XSLT样式表创建一个XML文件。一切形式的作品不错,但......用XSLT格式化的XML中的XHTML文本

...我输出节点包含XHTML文本中的他们,就像这样:

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <snippet id="user_surname"> 
     <content> 
      <h1>Some title here</h1> 
      <p>Blah blah blah...</p> 
     </content> 
    </snippet> 
    ... 
</root> 

下面是相应的XSLT样式表:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
    <html> 
    <body> 
    <xsl:for-each select="root/snippet"> 
     <div> 
     <xsl:value-of select="content" disable-output-escaping="yes" /> 
     </div> 
    </xsl:for-each> 
    </body> 
    </html> 
</xsl:template> 
</xsl:stylesheet> 

我遇到的问题是,h1和p标签不是作为h1和p标签打印的,而是作为没有标签的纯文本打印的。

如何让我的XSLT样式表按原样打印这些标签?我尝试在CDATA标签中打包,但似乎没有帮助。

在此先感谢!

回答

2

尝试xsl:copy-of而不是xsl:value-of。这应该给你的节点,而不是节点的文字。

+0

非常好!这工作100%!谢谢! – 2011-05-31 15:26:28

+1

@ josef.van.niekerk退房http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 – timbooo 2011-05-31 15:34:06