0
我只是看到這是否可行,如果可能的話可能會得到一個小代碼示例。是否有可能創建一個解析存儲在服務器上的XML文件的JSP頁面。解析XML以創建動態頁面
XML將包含頁面上顯示的元素,因此更改XML可能會改變JSP頁面的外觀/佈局。
我不知道該如何格式化XML,並將其調用到JSP中,如果有人知道資源或者這是否可能,這將是很多幫助(我不期望有人只是做一些事情對我來說;))
感謝
我只是看到這是否可行,如果可能的話可能會得到一個小代碼示例。是否有可能創建一個解析存儲在服務器上的XML文件的JSP頁面。解析XML以創建動態頁面
XML將包含頁面上顯示的元素,因此更改XML可能會改變JSP頁面的外觀/佈局。
我不知道該如何格式化XML,並將其調用到JSP中,如果有人知道資源或者這是否可能,這將是很多幫助(我不期望有人只是做一些事情對我來說;))
感謝
是的,這是可能的,但是,你爲什麼不使用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>