0

我只是在看看这是否可行,如果可能的话,也许会得到一个小代码示例。是否可以制作一个解析存储在服务器上的 XML 文件的 JSP 页面。

XML 将包含页面上显示的元素,因此更改 XML 可以改变 JSP 页面的外观/布局。

我不确定我将如何格式化 XML 并将其调用到 JSP 中,如果有人知道资源或者是否有可能,这将有很大帮助(我不希望有人为我做某事;) )

谢谢

4

1 回答 1

1

是的,有可能,但是为什么不使用 XSLT?如果您的主要目标是转换,那么 XSLT 将在没有 JSP 的情况下为您完成这项工作。如果不是,那么您的实现是特定于 Java Server Pages 域的,当您决定更改服务器时,比如说 PHP,那么您将不得不重新编程整个事情。

如果您想要一个关于如何使用 java 转换 XML 数据的简单示例,请查看存储在“data.xml”中的以下 xml

<?xml version='1.0'?>
<data>
   <row><cell>1</cell><cell>2</cell><cell>3</cell></row>
   <row><cell>4</cell><cell>5</cell><cell>6</cell></row>
   <row><cell>7</cell><cell>8</cell><cell>9</cell></row>
</data>

您可以使用 XDom、JDom 或您拥有的其他工具来读取此文件。我将使用 java 中包含的基本 DOM,它不太友好并且缺少迭代器,确实不推荐用于大型 XML 文件。

DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document d = db.parse(new File("./data.xml"));
out.println("<table border='1'>");
for(int i=0;i<d.getDocumentElement().getChildNodes().getLength();i++){
    Node row = d.getDocumentElement().getChildNodes().item(i);
    if(!row.getNodeName().equals("row")) continue;
    out.print("\t<tr>");
    for(int j=0;j<row.getChildNodes().getLength();j++){
        Node cell = row.getChildNodes().item(j);
        if(!cell.getNodeName().equals("cell")) continue;    
        out.print("<td>");
        out.print(cell.getTextContent());
        out.print("</td>");
    }
    out.println("</tr>");
}
out.println("</table>");

html输出将是:

<table border='1'>
    <tr><td>1</td><td>2</td><td>3</td></tr>
    <tr><td>4</td><td>5</td><td>6</td></tr>
    <tr><td>7</td><td>8</td><td>9</td></tr>
</table>
于 2012-09-14T09:15:48.643 回答