使用 XSLT 格式化的 XML 中的 XHTML 文本
我正在尝试创建一个带有相应 XSLT 样式表的 XML 文件。一切都正常,但是...
...我输出的节点内部包含 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 标签包装,但似乎没有帮助。
提前致谢!
I'm trying to create an XML file with a corresponding XSLT stylesheet. Everything sort of works okay, but...
...the nodes I'm outputting contain XHTML text inside them, like so:
<?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>
Here's the corresponding XSLT stylesheet:
<?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>
The issue I'm having, is that the h1 and p tags are not printed as h1 and p tags, but instead, as plain text without the tags.
How can I get my XSLT stylesheet to print these tags as is? I tried wrapping in CDATA tags, but it doesn't seem to help.
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试使用
xsl:copy-of
而不是xsl:value-of
。这应该为您提供节点而不是文本形式的节点。Try
xsl:copy-of
instead ofxsl:value-of
. That should give you the nodes instead of the nodes as text.