广

Java编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    Java:DocumentBuilderFactory调用XML的方法实例

    2018-11-09 09:49:34 次阅读 稿源:互联网
    零七广告

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

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

     DocumentBuilder dombuilder=domfac.newDocumentBuilder();

    )把要解析的 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();
    代码如下:

    package com.st.demo;  

    import java.io.File;  
    import java.io.FileInputStream;  
    import java.io.InputStream;  

    import javax.xml.parsers.DocumentBuilder;  
    import javax.xml.parsers.DocumentBuilderFactory;  

    import org.w3c.dom.Document;  
    import org.w3c.dom.Element;  
    import org.w3c.dom.Node;  
    import org.w3c.dom.NodeList;  

    public class XmlReader {  
        public static void main(String[] args) {  
            XmlReader reader = new XmlReader();  
        }  
        public XmlReader(){  
            DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();  
            try {  
                DocumentBuilder domBuilder = domfac.newDocumentBuilder();  
                InputStream is = new FileInputStream(new File("D:/test1.xml"));  
                Document doc = domBuilder.parse(is);  
                Element root = doc.getDocumentElement();  
                NodeList books = root.getChildNodes();  
                if(books!=null){  
                    for (int i = 0; i < books.getLength(); i++) {  
                        Node book = books.item(i);  
                         if(book.getNodeType()==Node.ELEMENT_NODE) {  
                                //(7)取得节点的属性值  
                                String email=book.getAttributes().getNamedItem("email").getNodeValue();  
                                System.out.println(email);  
                                //注意,节点的属性也是它的子节点。它的节点类型也是Node.ELEMENT_NODE  
                                //(8)轮循子节点  
                                for(Node node=book.getFirstChild();node!=null;node=node.getNextSibling()) {  
                                    if(node.getNodeType()==Node.ELEMENT_NODE) {  
                                        if(node.getNodeName().equals("name")) {  
                                            String name=node.getNodeValue();  
                                            String name1=node.getFirstChild().getNodeValue();  
                                            System.out.println(name);  
                                            System.out.println(name1);  
                                        }  
                                        if(node.getNodeName().equals("price")) {  
                                            String price=node.getFirstChild().getNodeValue();  
                                            System.out.println(price);  
                                        }  
                                    }  
                                }  
                         }  
                    }  
                }  
            } catch (Exception e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  

        }  

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告