在 JSP 中漂亮地打印 XML 数据

发布于 2024-11-05 11:55:02 字数 360 浏览 2 评论 0原文

如何在 JSP 中漂亮地打印(即使用缩进)XML 数据?我有以下代码:

<c:forEach items="${stuffs}" var="stuff">
    <pre>
        <c:out value="${stuff}" escapeXml="true"/><br/>
    </pre>
</c:forEach>

但问题是,当 ${stuff} 是未格式化的 XML 时,它将在 jsp 中显示为一个长 XML 数据。我需要将其漂亮地打印在

标记内。

How do I pretty print (ie. with indentation) XML data in the JSP? I have the following code:

<c:forEach items="${stuffs}" var="stuff">
    <pre>
        <c:out value="${stuff}" escapeXml="true"/><br/>
    </pre>
</c:forEach>

But the problem is when ${stuff} is an unformatted XML, it will show in the jsp as one long XML data. I need it pretty-printed inside the <p> tag.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(3

长梦不多时 2024-11-12 11:55:03

如果你想要一个简单的解决方案,在设置 JSP 的响应来查看时不要费心使用 xsl,只需执行 stuff.replaceAll("<", "& lt;").replaceAll(">" ,"& gt; "); 你不需要任何其他东西;这里不需要 XSL 转换。在必要时使用技术,除非我在这里遗漏了一些东西。

If you want a simple solution, don't bother with xsl while setting response for JSP to look at, just do stuff.replaceAll("<", "& lt;").replaceAll(">","& gt; "); You don't need anything else; no XSL transformation needed here. Use technologies when they are essential, unless I am missing something here.

很酷又爱笑 2024-11-12 11:55:03

您可以在 http://prettydiff.com/?m=beautify 处使用 Pretty Diff 漂亮地打印 JSLT将会完全满足您的需求。考虑以下示例:

<a>
    <c:out value="<strong>some content</strong>"/>
</a>

只要嵌套标签在引号中,Pretty Diff 就能够识别多维标签。

You can pretty print JSLT with Pretty Diff at http://prettydiff.com/?m=beautify It will do exactly what you need. Consider the following example:

<a>
    <c:out value="<strong>some content</strong>"/>
</a>

Pretty Diff is capable of recognizing multidimensional tags so long as the nested tag is in quotes.

只怪假的太真实 2024-11-12 11:55:02

XSLT 有一种简单的方法可以通过 xsl:output 元素来完成此操作。如果您可以应用 XSLT,我建议使用这样的样式表(基于身份转换):

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:strip-space elements="*" />
    <xsl:output method="xml" indent="yes" />
    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*" />
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

XSLT has a simple means of doing this via the xsl:output element. If you can apply an XSLT, I suggest using a stylesheet like this (based on the identity transformation):

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:strip-space elements="*" />
    <xsl:output method="xml" indent="yes" />
    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*" />
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文