Java调用XML的方法:DocumentBuilderFactory

来源:互联网 发布:otdr自动生成软件 编辑:程序博客网 时间:2024/05/17 04:50

首先得到:得到 DOM 解析器的工厂实例      DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();

然后从 DOM 工厂获得 DOM 解析器

 DocumentBuilder dombuilder=domfac.newDocumentBuilder();

 

3 )把要解析的 XML 文档转化为输入流,以便 DOM 解析器解析它

InputStream is= new  FileInputStream("test1.xml");        

( 4 )解析 XML 文档的输入流,得到一个 Document

 Document doc=dombuilder.parse(is);

( 5 )得到 XML 文档的根节点

Element root=doc.getDocumentElement();

( 6 )得到节点的子节点

  NodeList books=root.getChildNodes();

 

Java代码 复制代码
  1. package com.st.demo;   
  2.   
  3. import java.io.File;   
  4. import java.io.FileInputStream;   
  5. import java.io.InputStream;   
  6.   
  7. import javax.xml.parsers.DocumentBuilder;   
  8. import javax.xml.parsers.DocumentBuilderFactory;   
  9.   
  10. import org.w3c.dom.Document;   
  11. import org.w3c.dom.Element;   
  12. import org.w3c.dom.Node;   
  13. import org.w3c.dom.NodeList;   
  14.   
  15. public class XmlReader {   
  16.     public static void main(String[] args) {   
  17.         XmlReader reader = new XmlReader();   
  18.     }   
  19.     public XmlReader(){   
  20.         DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();   
  21.         try {   
  22.             DocumentBuilder domBuilder = domfac.newDocumentBuilder();   
  23.             InputStream is = new FileInputStream(new File("D:/test1.xml"));   
  24.             Document doc = domBuilder.parse(is);   
  25.             Element root = doc.getDocumentElement();   
  26.             NodeList books = root.getChildNodes();   
  27.             if(books!=null){   
  28.                 for (int i = 0; i < books.getLength(); i++) {   
  29.                     Node book = books.item(i);   
  30.                      if(book.getNodeType()==Node.ELEMENT_NODE) {   
  31.                             //(7)取得节点的属性值   
  32.                             String email=book.getAttributes().getNamedItem("email").getNodeValue();   
  33.                             System.out.println(email);   
  34.                             //注意,节点的属性也是它的子节点。它的节点类型也是Node.ELEMENT_NODE   
  35.                             //(8)轮循子节点   
  36.                             for(Node node=book.getFirstChild();node!=null;node=node.getNextSibling()) {   
  37.                                 if(node.getNodeType()==Node.ELEMENT_NODE) {   
  38.                                     if(node.getNodeName().equals("name")) {   
  39.                                         String name=node.getNodeValue();   
  40.                                         String name1=node.getFirstChild().getNodeValue();   
  41.                                         System.out.println(name);   
  42.                                         System.out.println(name1);   
  43.                                     }   
  44.                                     if(node.getNodeName().equals("price")) {   
  45.                                         String price=node.getFirstChild().getNodeValue();   
  46.                                         System.out.println(price);   
  47.                                     }   
  48.                                 }   
  49.                             }   
  50.                      }   
  51.                 }   
  52.             }   
  53.         } catch (Exception e) {   
  54.             // TODO Auto-generated catch block   
  55.             e.printStackTrace();   
  56.         }   
  57.            
  58.     }   
  59. }  

 

Xml代码 复制代码
  1. <?xml version="1.0" encoding="GB2312" standalone="no"?>  
  2. <books>  
  3.     <book email="zhoujunhui">  
  4.         <name>rjzjh</name>  
  5.         <price>jjjjjj</price>  
  6.     </book>  
  7. </books>  
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 红米note2闪退怎么办 安卓不支持计步怎么办 银行多扣了钱怎么办 网络配置器没了怎么办 班里丢钱了应该怎么办 初级会计考过了怎么办 教师职称证丢了怎么办 会计初级证丢了怎么办 工作遭同事不满否认质疑怎么办 单位领导不让进收入财务怎么办 事业单位50岁不愿退休的怎么办 回美国i20丢了怎么办 i20忘签字美国入境怎么办 社保基数报错了怎么办 公司合同没给我怎么办 给客户报错价格怎么办 给客户报价低了怎么办 报价失误报低了怎么办 期望薪资说低了怎么办 期望薪资说高了怎么办 面试工资说低了怎么办 期望薪资谈低了怎么办 请年假公司不批怎么办 期望工资填低了怎么办 面试工资要高了怎么办 找工作期望薪资写低了怎么办 期望工资写少了怎么办 不给工人发工资怎么办 天亮了怎么办我好想你 亲爱的我想你我怎么办 人在澳大利亚悉尼找不到了怎么办 红米手机忘记手势密码怎么办 捡到苹果手机怎么办才能自己用 日语会读不会写怎么办 手术后nbp过低怎么办 我的手破了怎么办英文 平板手机屏坏了怎么办 他很优秀我该怎么办 洗澡的花洒漏水怎么办 高三了文科成绩很差怎么办 骑缝章最后一页没盖全怎么办