加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

获取xml数据库节点数据应用

发布时间:2020-12-16 05:58:31 所属栏目:百科 来源:网络整理
导读:获取xml数据库节点数据应用 (1)XML数据库文件data.xml ?xml version="1.0" encoding="UTF-8"standalone="no"?users user id="001" uidAAA/uid pwdaaa/pwd introABC001/intro /user user id="002" uidBBB/uid pwdbbb/pwd intro ABC002/intro /user user id=

获取xml数据库节点数据应用

(1)XML数据库文件data.xml

<?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。


(3)获取数据节点的jsp应用代码

<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="#222221"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独有的属性)

nodeName 返回节点的名称,根据其属性

nodeType 返回节点的类型

nodeValue 设置或返回节点的值,根据其类型。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读