当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>J2EE

JSP提供解析接口XML数据

    1.接口内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<users>
    <user>
        <id>1</id>
        <firstname>Song</firstname>
        <lastname>Thinking</lastname>
        <password>songlipeng</password>
    </user>
    <user>
        <id>2</id>
        <firstname>Zheng</firstname>
        <lastname>Quanling</lastname>
        <password>zhengquanling</password>
    </user>
</users>

    2.解析的JSP代码如下:

<%@ page language="java" import="java.util.*,javax.xml.parsers.*,java.sql.*" pageEncoding="UTF-8"%>
<%@ page import="java.io.*,javax.xml.*,org.w3c.dom.*" %>
<%
    //建立解析工厂
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setIgnoringElementContentWhitespace(true);      //忽略元素内容中的空格
    //创建解析器
    DocumentBuilder db = dbf.newDocumentBuilder();
    //得到解析文件
    //据说这样写可以让XML与JSP放在同一目录哦
    Document doc = db.parse("http://localhost:8080/MyProjects/webserver/users.xml");     //得到其他地方的接口目录
    doc.normalize();
    //得到根元素
    //Element root = doc.getDocumentElement();
    //得到所有user元素
    NodeList users = doc.getElementsByTagName("user");
    NodeList usersIdNodeList= doc.getElementsByTagName("id");
    NodeList usersNameNodeList= doc.getElementsByTagName("firstname");
    NodeList usersPasswordNodeList=doc.getElementsByTagName("lastname");
    NodeList usersTrueNameNodeList=doc.getElementsByTagName("password");
   
%>
<table>
    <thead>
        <tr>
            <th>ID</th>
            <th>firstName</th>
            <th>lastName</th>
            <th>password</th>
        </tr>
    </thead>
    <%
        Node userNode = null;
        for (int i = 0; i < users.getLength(); i++) {
            //Element user = (Element) users.item(i);
    %>
    <tr>
        <td><%=usersIdNodeList.item(i).getFirstChild().getNodeValue()%></td>
        <td><%=usersNameNodeList.item(i).getFirstChild().getNodeValue()%></td>
        <td><%=usersPasswordNodeList.item(i).getFirstChild().getNodeValue()%></td>
        <td><%=usersTrueNameNodeList.item(i).getFirstChild().getNodeValue()%></td>
        <%
            }
        %>
    </tr>
</table>
<!--只提取XML中的ID数据信息-->
<div>
    <%
        for(int i=0;i<usersIdNodeList.getLength();i++){
            out.println("<b>"+usersIdNodeList.item(i).getFirstChild().getNodeValue()+"</b>");
         }
     %>

</div>

    所以XML的话可以这样其他地方是JAVA来将数据写入 然后我在这里解析出来!

相关内容
赞助商链接