java 运用dom解析xml文件之一.

原创 2004年07月07日 16:23:00

xml文件如下:

<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE Catalog [
 <!ENTITY dt "&#13;">
 <!ENTITY at "&#10;">
]>
<CHINAEXCEL>
<F1>
<General>
<DesignMode>0</DesignMode>
<FixedRows>7</FixedRows>
<GridColor>16777215</GridColor>
<ShowHeader>0</ShowHeader>
<TotalCol>4</TotalCol>
<TotalRow>39</TotalRow>
<UseAdo>1</UseAdo>
<VerMajor>4</VerMajor>
<VerMinor>0</VerMinor>
</General>
<DefaultCell>
<hAg>0</hAg>
<swty>0</swty>
<vAg>6</vAg>
</DefaultCell>
<CellList>
<WriteByRow>1</WriteByRow>
<Row1>
<Cou>4</Cou>
<CL2>
<Cols>1</Cols>
<FtId>13</FtId>
<Row>1</Row>
<Rows>1</Rows>
<hAg>6</hAg>
<t>供电生产调度情况</t>
</CL2>
<CL3>
<Cols>-2</Cols>
<FtId>5</FtId>
<Row>1</Row>
<Rows>-1</Rows>
<hAg>6</hAg>
<t>供电生产调度情况</t>
</CL3>
<CL4>
<Row>1</Row>
</CL4>
</Row1>
<Row2>
<Cou>4</Cou>
<CL2>
<Cols>-2</Cols>
<Row>2</Row>
<Rows>-1</Rows>
<hAg>6</hAg>
</CL2>
<CL3>
<Cols>-2</Cols>
<Row>2</Row>
<Rows>-1</Rows>
<hAg>6</hAg>
</CL3>
<CL4>
<Row>2</Row>
</CL4>
</Row2>
<Row4>
<Cou>4</Cou>
<CL1>
<FtId>6</FtId>
<Row>4</Row>
</CL1>
<CL2>
<FtId>6</FtId>
<Row>4</Row>
<hAg>2</hAg>
<t>200501</t>
</CL2>
<CL3>
<FtId>6</FtId>
<Row>4</Row>
<hAg>0</hAg>
<t>月份</t>
</CL3>
<CL4>
<FtId>6</FtId>
<Row>4</Row>
<hAg>6</hAg>
<t>ADLJ201号</t>
</CL4>
</Row4>
<Row5>
<Cou>4</Cou>
<CL1>
<FtId>6</FtId>
<Row>5</Row>
<hAg>6</hAg>
<t>部门:</t>
</CL1>
<CL2>
<FtId>6</FtId>
<Row>5</Row>
<hAg>0</hAg>
<t>一级部门</t>
</CL2>
<CL3>
<FtId>6</FtId>
<Row>5</Row>
<hAg>6</hAg>
</CL3>
<CL4>
<FtId>6</FtId>
<Row>5</Row>
<hAg>6</hAg>
<t>月后4日前报出</t>
</CL4>
</Row5>
<Row6>
<Cou>4</Cou>
<CL1>
<BPenId>0</BPenId>
<Cols>1</Cols>
<FtId>6</FtId>
<LPenId>0</LPenId>
<RPenId>0</RPenId>
<Row>6</Row>
<TPenId>0</TPenId>
<fl>241</fl>
<hAg>6</hAg>
</CL1>
<CL2>
<Cols>-1</Cols>
<FtId>6</FtId>
<Row>6</Row>
<Rows>-6</Rows>
<hAg>6</hAg>
</CL2>
<CL3>
<BPenId>0</BPenId>
<FtId>6</FtId>
<LPenId>0</LPenId>
<RPenId>0</RPenId>
<Row>6</Row>
<TPenId>0</TPenId>
<fl>241</fl>
<hAg>6</hAg>
<t>计算单位</t>
</CL3>
<CL4>
<BPenId>0</BPenId>
<FtId>6</FtId>
<LPenId>0</LPenId>
<RPenId>0</RPenId>
<Row>6</Row>
<TPenId>0</TPenId>
<fl>241</fl>
<hAg>6</hAg>
<t>本月</t>
</CL4>
</Row6>
..........
</CHINAEXCEL>

 

解析java类..

import javax.xml.parsers.*;
import org.w3c.dom.*;
import com.report.*;

public class dom1{
 public static String GetValueString(String filename,String row,String col){
   Node node5=null;
  try{
  

   DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
   DocumentBuilder builder=factory.newDocumentBuilder();
   
   Document doc=builder.parse(filename);
   Element element =doc.getDocumentElement();
   String row1="Row"+row;
   String col1="CL"+col;
  
   NodeList nodelist=element.getChildNodes();
   NodeList nodelist1=null;
   NodeList nodelist2=null;
   NodeList nodelist3=null;
   NodeList nodelist4=null;
   NodeList nodelist5=null;
   Node node=null;
   Node node1=null;
   Node node2=null;
   Node node3=null;
   Node node4=null;
   

   if(nodelist.getLength()>0)
   {
     
    node=nodelist.item(1);//f1
    nodelist1=node.getChildNodes();
    if(nodelist1.getLength()>4){
    
     
     node1=nodelist1.item(5);//node1对应celllist
     if(!node1.getNodeName().equals("CellList"))
      node1=nodelist1.item(7);
     
     
     nodelist2=node1.getChildNodes();
     for(int m=3;m<nodelist2.getLength();){
      node2=nodelist2.item(m);//要循环 ,获取行
      m=m+2;
    
      if(node2.getNodeName().equals(row1))
      {
       nodelist3=node2.getChildNodes();
    
       for(int j=3;j<nodelist3.getLength();){//对应列循环取
        node3=nodelist3.item(j);//获取 列
        j=j+2;
        if(node3.getNodeName().equals(col1))
        {
         nodelist4=node3.getChildNodes();
      
         for(int i=1;i<nodelist4.getLength();){
          node4=nodelist4.item(i);
      
          if(node4.getNodeName().equals("t"))
          {
           nodelist5=node4.getChildNodes();//对应的 值
        
           node5=nodelist5.item(0);
        
          }
       
         i=i+2;
      
         }
        
        }
      
       }    
    
      }
     }
    
    }
   
   }
   
 
  }catch(Exception e)
   {e.printStackTrace();
  }
   if(node5.getNodeValue()==null) return "0";
     else return node5.getNodeValue();
 }
}

Java以DOM方式解析生成xml文件或字符串

写了代码java代码,测试了在jdk 1.8下使用dom方式操作xml的技术可行性。
  • lee353086
  • lee353086
  • 2016年07月18日 15:50
  • 1917

Java解析XML文件方法之一(DOM)

DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对...
  • zp357252539
  • zp357252539
  • 2015年08月29日 08:45
  • 1376

Java 应用DOM方式解析XML文件

引入java为啥需要解析XML的方法?xml的优势:它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或...
  • qq_23473123
  • qq_23473123
  • 2016年05月15日 13:53
  • 2056

Java使用DOM解析XML文件

代码就是王道,不解释 import java.io.IOException; import java.io.InputStream; import java.net.DatagramPacket...
  • zhy_cheng
  • zhy_cheng
  • 2012年09月12日 10:29
  • 2128

dom解析方式对xml文档进行操作

java就业培训教程 张孝祥 36.2元 javascript就业培训教程 张孝祥 ...
  • qq_30638831
  • qq_30638831
  • 2016年04月07日 14:45
  • 726

Python:Dom解析XML文件(读XML)

这一篇文章接着前一篇来接续讲解如何使用Dom方式操作XML数据,这一篇文章主要介绍如何解析(parse)XML文件,本文实例XML文件是上一篇的生成的文件,我们看看能不能完整的读出来,这个XML文件内...
  • zhou191954
  • zhou191954
  • 2012年12月03日 22:36
  • 1173

java Dom 解析xml文档,实现xml文档结点的增删改查,遍历

java Dom 解析xml文档,实现xml文档结点的增删改查,遍历
  • yxmaomao1991
  • yxmaomao1991
  • 2016年03月23日 21:23
  • 2566

java 使用org.w3c.dom操作XML文件

本篇介绍在java中,如何使用org.w3c.dom中的相关内容来操作XML文件。包括: 如何在内存中构建XML文件并写入磁盘;如何从磁盘读取XML文件到内存;如何添加注释,读取注释;如何添...
  • sky_ground
  • sky_ground
  • 2016年06月17日 10:00
  • 1754

XML文件读取——DOM方式

XML文件的存储 XML文件是以树的结构存储的,一个XML文件就是一个倒着的树,有一个根节点。根节点下有好多个子节点,然后节点有自己的属性,在标签中和标签名空一格添加属性(属性也可以作为节点的子节...
  • fantiantianlucky
  • fantiantianlucky
  • 2016年06月22日 17:02
  • 1042

运用java读取xml文件---DOM 解析

读取本地的xml文件,通过DOM进行解析,DOM解析的特点就是把整个xml文件装载入内存中,形成一颗DOM树形结构,树结构是方便遍历和和操纵。 DOM解析的特性就是读取xml文件转换为 dom树形结...
  • topwqp
  • topwqp
  • 2013年03月21日 16:59
  • 7705
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 运用dom解析xml文件之一.
举报原因:
原因补充:

(最多只允许输入30个字)