<?xml version="1.0" encoding="UTF-8"standalone="no"?> <users> <user id="001"> <uid>AAA</uid> <pwd>aaa</pwd> <intro>ABC001</intro> </user> <user id="002"> <uid>BBB</uid> <pwd>bbb</pwd> <intro> ABC002</intro> </user> <user id="003"> <uid>CCC</uid> <pwd>ccc</pwd> <intro> ABC003</intro> </user> </users>
(2)DOC文档树结构分析
如图1所示,
图1 XML数据库节点结构
图1中,users根节点的子节点为:0、1、2、3、4、5、6;共7个节点。其中,子节点0、2、4、6为#text节点(可能是文本信息,或者包含孙子节点),子节点1、3、5为元素节点ELEMENT_MODE。
子节点user同样包含7个子节点:1_0、1_1、1_2、1_3、1_4、1_5、1_6;其中,子节点1_0、1_2、1_4、1_6为#text节点(可能是文本信息,或者包含孙子节点),子节点1_1、1_3、1_5为元素节点ELEMENT_MODE。
<pre name="code" class="html"><%@ page contentType="text/html;charset=UTF-8"%> <%@ page import="java.io.*"%> <%@ page import="org.w3c.dom.*"%> <%@ page import="org.xml.sax.*"%> <%@ page import="javax.xml.parsers.*"%> <html> <head> <title>XML_DATA</title> </head> <body> <% Document doc; DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance(); dbf.setValidating(false); DocumentBuilderdb= dbf.newDocumentBuilder(); String dataPath=application.getRealPath("/data/data.xml"); doc=db.parse(newFile(dataPath)); Nodedocument_node=(Node)doc; Nodeusers_node=document_node.getFirstChild(); //获取根节点users //获取根节点users的所有子节点(不包含孙子节点), //并且以链表的形式存放到allChild变量中。 NodeListallChild=users_node.getChildNodes(); intnode_count=0; if(allChild!=null) { node_count=allChild.getLength(); } %> <palign="center"> UserManagement</p> <center> <tableborder="1" cellpadding="0" cellspacing="0"style="border-collapse: collapse" bordercolor="#111111"width="400" id="AutoNumber1"> <tr> <tdwidth="33%"><b>User_ID</b></td> <tdwidth="33%"><b>PWD</b></td> <tdwidth="34%"><b>introduction</b></td> </tr> <% for(int j=0;j<node_count;j++) { if(allChild.item(j).getNodeType()==Node.ELEMENT_NODE) {//筛选根节点的子节点中的元素子节点 %> <tr> <td width="33%"> <!—获取根节点的第j个子节点(此处为筛选的元素子节点)的: 第一个子节点1_0:getFirstChild() 获取第一个子节点紧跟的下一个同级节点1_1:getNextSibling() 获取子节点1_1的第一个子节点1_1_0:getFirstChild() 上述获取的子节点1_1_0为#text,且不包含下一级子节点, 获取其文本值:getNodeValue() --> <%=allChild.item(j).getFirstChild().getNextSibling().getFirstChild().getNodeValue()%> </td> <td width="33%"> <%=allChild.item(j).getFirstChild().getNextSibling().getNextSibling().getNextSibling().getFirstChild().getNodeValue()%> </td> <td width="33%"> <%=allChild.item(j).getLastChild().getPrevIoUsSibling().getFirstChild().getNodeValue()%> </td> </tr> <% } } %> </table> <ahref="add.html">add new data</a> </center> </body> </html>
(4)Node对象的属性:
childNodes 返回节点的子节点列表(不包含孙子节点)
firstChild 返回节点的首个子节点
lastChild 返回子节点的最后一个子节点
nextSibling 返回节点之后紧跟的同级节点
prevIoUsSibling 返回节点之前紧跟的同级节点
text 返回节点及其后的文本(IE独有的属性)
nodeType 返回节点的类型
nodeValue 设置或返回节点的值,根据其类型。
原文链接:https://www.f2er.com/xml/295641.html