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设计模式漫谈之一

-
  • 1970年01月01日 08:00

Java 应用DOM方式解析XML文件

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

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

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

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

读取本地的xml文件,通过DOM进行解析,DOM解析的特点就是把整个xml文件装载入内存中,形成一颗DOM树形结构,树结构是方便遍历和和操纵。 DOM解析的特性就是读取xml文件转换为 dom树形结...
  • topwqp
  • topwqp
  • 2013-03-21 16:59:20
  • 7922

DOM解析XML文件例子

  • 2010年02月06日 01:28
  • 1.77MB
  • 下载

DOM解析XML浅析

xml DOM解析笔记
  • guchuanhang
  • guchuanhang
  • 2016-07-09 12:03:03
  • 3441

java使用dom解析xml

  • 2013年09月06日 15:32
  • 7KB
  • 下载

DOM解析xml文件代码

  • 2011年07月09日 21:59
  • 2KB
  • 下载

Android中DOM解析XML文件

一、在assets文件中写xml文件[html] view plaincopyprint?xmlversion="1.0"encoding="UTF-8"?> persons> personid="2...
  • chrp99
  • chrp99
  • 2013-06-03 20:14:38
  • 4913

JAVA_dom解析xml

  • 2013年10月14日 16:07
  • 8KB
  • 下载
收藏助手
不良信息举报
您举报文章:java 运用dom解析xml文件之一.
举报原因:
原因补充:

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