我只是看到这是否可行,如果可能的话可能会得到一个小代码示例。是否可以创建一个JSP页面来解析存储在服务器上的XML文件。
XML将包含页面上显示的元素,因此更改XML可能会改变JSP页面的外观/布局。
我不知道如何格式化XML并将其调用到JSP中,如果有人知道资源或者是否可能会有很多帮助(我不希望有人为我;))
由于
答案 0 :(得分: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>