使用 XSLT 格式化的 XML 中的 XHTML 文本

发布于 2024-11-10 09:44:41 字数 1037 浏览 0 评论 0原文

我正在尝试创建一个带有相应 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

苍白女子 2024-11-17 09:44:41

尝试使用 xsl:copy-of 而不是 xsl:value-of。这应该为您提供节点而不是文本形式的节点。

Try xsl:copy-of instead of xsl:value-of. That should give you the nodes instead of the nodes as text.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文