【问题标题】:how to display xml formatted jsp如何显示xml格式的jsp
【发布时间】:2011-04-12 11:35:58
【问题描述】:

我在 JSP 中将 XML 作为字符串。但是这个 XML 在一行中。我想以 JSP 格式显示这个 XML 字符串。

例如:

<?xml version="1.0"?><catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><genre>Computer</genre><price>44.95</price>...(is going on)

我想在 JSP 中显示如下:

<?xml version="1.0"?>
<catalog>
    <book id="bk101">
        <author>Gambardella, Matthew</author>
        <title>XML Developer's Guide</title>
        <genre>Computer</genre>
        <price>44.95</price>...(going on)

我该怎么做?

【问题讨论】:

    标签: xml jsp


    【解决方案1】:

    我也有同样的问题。在将它发送到 JSP 之前,我通过在我的 Java 代码中格式化 XML 字符串来解决它(如果你愿意,你也可以在 JSP 中这样做):

    Transformer transformer = transformerFactory.newTransformer();
    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
    Source source = new DOMSource(document);
    StringWriter writer = new StringWriter();
    Result output = new StreamResult(writer);
    transformer.transform(source, output);
    return writer.toString();
    

    然后使用 c:out 来显示它

    <pre>
        <c:out value="${xmlString}" /> 
    </pre>
    

    【讨论】:

      【解决方案2】:

      您需要将 和其他在 HTML 中具有特殊含义的字符转换为它们的HTML entities。解析使用this 方法。它会为你解析。

      【讨论】:

      • 我明白你的意思。但我并不是说如何在 jsp 中显示字符串。我的意思是如何用树结构的格式化 xml 显示这个字符串。
      • @omer:使用我的答案中的方法来获取解析的字符串并在 jsp 中显示该字符串。它将显示整个 xml。
      【解决方案3】:

      做xsl转换并指定选项

      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
       <xsl:output method="xml" indent="yes"/>
       <xsl:strip-space elements="*"/>
       <xsl:template match="/">
        <xsl:copy-of select="."/>
       </xsl:template>
      

      看到这个example 然后使用你的xml

      【讨论】:

      • 我不想在 jsp 中显示 xml 数据。我想在jsp中显示xml文件。我该怎么解释呢。当用户打开页面时,用户将看不到 xml 数据。例如名称、国家/地区。用户将看到所有 xml。 w3schools.com/xsl/cdcatalog.xml 点击此链接。我想这样显示。不是xml的内容。只是所有的xml。
      • 尝试将此行放在文件中&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt; 的首位
      【解决方案4】:

      尝试在你的jsp中更改“text/xml”而不是“text/html”:

      <%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%>
      

      然后把xml内容不放

      <?xml version="1.0"?>
      

      所以你需要这样的东西:

      <%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%><catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><genre>Computer</genre><price>44.95</price>...(is going on)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-21
        相关资源
        最近更新 更多