Jsp 解析XML以创建动态页面

Jsp 解析XML以创建动态页面,jsp,xml-parsing,Jsp,Xml Parsing,我只是想看看这是否可行,如果可能的话,可能会得到一个小的代码示例。是否可以创建一个JSP页面来解析存储在服务器上的XML文件 XML将包含页面上显示的元素,因此更改XML可以改变JSP页面的外观/布局 不过,我不确定如何格式化XML并将其调用到JSP中,如果有人知道某个资源,或者这是否可能会有很大帮助(我不希望有人为我做点什么;) 谢谢是的,这是可能的,但是,为什么不使用XSLT呢?如果您的主要目标是转换,那么XSLT将在没有JSP的情况下为您完成这项工作。如果不是,那么您的实现是特定于Java

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

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

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


谢谢

是的,这是可能的,但是,为什么不使用XSLT呢?如果您的主要目标是转换,那么XSLT将在没有JSP的情况下为您完成这项工作。如果不是,那么您的实现是特定于Java服务器页面域的,当您决定将服务器更改为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>

123
456
789
您可以使用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>");
DocumentBuilder db=DocumentBuilderFactory.newInstance().newDocumentBuilder();
文档d=db.parse(新文件(“./data.xml”);
out.println(“”);
对于(int i=0;i
<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>