在java对XML进行处理时,读取XML文档,对其处理,这是我得一个实例代码。 
import java.io.FileInputStream; 
import javax.xml.parsers.*; 
import org.w3c.dom.*; 
/*  * Created on 2004-6-2  *  *java读取XML文档  *利用DoM来读取一个XML文档的内容,并将其打印出来  *  */ 
/**  * @author wzy  *  * Email:[email protected]  */ public class TestXML { 
 public static void main(String[] args) {   Document doc;   DocumentBuilderFactory factory;   DocumentBuilder docBuilder;       Element root;    String elementName;      FileInputStream in;   String fileName;   try{        //get the xml file    fileName = System.getProperty("user.dir");    fileName = fileName+"/sample.xml";    in = new FileInputStream(fileName);        //解析XML文件,生成document对象    factory = DocumentBuilderFactory.newInstance();    factory.setValidating(false);    docBuilder = factory.newDocumentBuilder();    doc = docBuilder.parse(in);    //解析成功    System.out.println("parse successfull");        //获取XML文档的根节点    root = doc.getDocumentElement();       elementName = root.getNodeName();    //打印根节点的属性    printAttributes(root);        //打印该文档全部节点    System.out.println("打印全部节点");    printElement(root,0);       }   catch(Exception exp){    exp.printStackTrace();   }  }    //打印某个节点的全部属性  public static void printAttributes(Element elem){   NamedNodeMap attributes;   int i,max;   String name,value;   Node curNode;      attributes = elem.getAttributes();   max = attributes.getLength();      for(i=0;i<max;i++){    curNode = attributes.item(i);    name = curNode.getNodeName();    value = curNode.getNodeValue();    System.out.println("\t"+name+" = "+value);   }  } 
 //打印所有的节点的名称和值  //改方法采用递归方式打印文档的全部节点  public static void printElement(Element elem,int depth){   String elementName;   NodeList children;   int i,max;   Node curChild;   Element curElement;   String nodeName,nodeValue;      //elementName = elem.getNodeName();   //获取输入节点的全部子节点   children = elem.getChildNodes();      //按一定格式打印输入节点   for(int j=0;j<depth;j++){    System.out.print(" ");   }   printAttributes(elem);      //采用递归方式打印全部子节点   max = children.getLength();   for(i=0;i<max;i++){        curChild = children.item(i);        //递归退出条件    if(curChild instanceof Element){     curElement = (Element)curChild;     printElement(curElement,depth+1);    }    else{     nodeName = curChild.getNodeName();     nodeValue = curChild.getNodeValue();          for(int j=0;j<depth;j++)System.out.print(" ");     System.out.println(nodeName+" = "+nodeValue);    }   }  } }
   
 
  |