Довольно распечатать данные XML в JSP - PullRequest
0 голосов
/ 06 мая 2011

Как мне красиво напечатать (т.е. с отступом) данные XML в JSP? У меня есть следующий код:

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

Но проблема в том, что ${stuff} - это неформатированный XML, он будет отображаться в jsp как один длинный XML-данные. Мне нужно, чтобы это было хорошо напечатано внутри тега <p>.

Ответы [ 3 ]

1 голос
/ 26 сентября 2011

Если вы хотите простое решение, не беспокойтесь о xsl при настройке ответа для JSP, просто сделайте stuff.replaceAll("<", "& lt;").replaceAll(">","& gt; "); Вам больше ничего не нужно;здесь не требуется преобразование XSL.Используйте технологии, когда они необходимы, если я не пропускаю что-то здесь.

1 голос
/ 06 мая 2011

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>
0 голосов
/ 27 ноября 2011

Вы можете красиво распечатать JSLT с Pretty Diff на http://prettydiff.com/?m=beautify Это будет именно то, что вам нужно.Рассмотрим следующий пример:

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

Pretty Diff может распознавать многомерные теги, если вложенный тег находится в кавычках.

...