【JAVA原生方式解析XML】

 一、DOM 解析器

1)首先得到 DOM 解析器的工厂实例      

DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();

2)从 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();

扫描二维码关注公众号,回复: 299301 查看本文章

6)得到节点的子节点

  NodeList books=root.getChildNodes();

  

  

二、Transformer转换器 

使用Transformer将更新后的XML文档进行输出

 transformDomToXml(Document document,String FileName){

    try{

TransformerFactory tFactory = TransformerFactory.newInstance();

Transformer transformer = tFactory.newTransformer();

DOMSource source = new DOMSource(document);

StreamResult result = new StreamResult(new File(FileName));

transformer.transform(source,result);

     }catch (TransformerConfigurationException tce) {

        System.out.println("   " + tce.getMessage() );  

     }catch (TransformerException te) {

          System.out.println("   " + te.getMessage() );

     } 

  

DOM是javascript操作网页的接口,全称为文档对象模型(Document Object Model)。它的作用是将网页转为一个javascript对象,从而可以使用javascript对网页进行各种操作(比如增删内容)。浏览器会根据DOM模型,将HTML文档解析成一系列的节点,再由这些节点组成一个树状结构。DOM的最小组成单位叫做节点(node),文档的树形结构(DOM树)由12种类型的节点组成。本文将主要说明DOM节点类型

总括一般地,节点至少拥有nodeType、nodeName和nodeValue这三个基本属性。节点类型不同,这三个属性的值也不相同

nodeType属性返回节点类型的常数值。不同的类型对应不同的常数值,12种类型分别对应1到12的常数值

元素节点              Node.ELEMENT_NODE(1)

属性节点              Node.ATTRIBUTE_NODE(2)

文本节点              Node.TEXT_NODE(3)

CDATA节点             Node.CDATA_SECTION_NODE(4)

实体引用名称节点       Node.ENTRY_REFERENCE_NODE(5)

实体名称节点          Node.ENTITY_NODE(6)

处理指令节点          Node.PROCESSING_INSTRUCTION_NODE(7)

注释节点              Node.COMMENT_NODE(8)

文档节点              Node.DOCUMENT_NODE(9)

文档类型节点          Node.DOCUMENT_TYPE_NODE(10)

文档片段节点          Node.DOCUMENT_FRAGMENT_NODE(11)

DTD声明节点            Node.NOTATION_NODE(12)

猜你喜欢

转载自gaojingsong.iteye.com/blog/2395051