使用DOM的步骤
以下是在使用DOM解析器解析文档使用的步骤。
导入XML相关的软件包。
创建DocumentBuilder
从文件或流创建一个文档
提取根元素
检查属性
检查子元素
导入XML相关的软件包
importorg.w3c.dom.*;importjavax.xml.parsers.*;importjava.io.*;
创建 DocumentBuilder
DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=factory.newDocumentBuilder();
从文件或流创建一个文档
StringBuilderxmlStringBuilder=newStringBuilder();xmlStringBuilder.append(" ");ByteArrayInputStreaminput=newByteArrayInputStream(xmlStringBuilder.toString().getBytes("UTF-8"));Documentdoc=builder.parse(input);
提取根元素
Elementroot=document.getDocumentElement();
检查属性
//returns specific attributegetAttribute("attributeName");//returns a Map (table) of names/valuesgetAttributes();
检查子元素
//returns a list of subelements of specified namegetElementsByTagName("subelementName");//returns a list of all child nodesgetChildNodes();
演示示例
这是输入需要解析的 xml 文件:
dinkar
kad
dinkar
85
Vaneet
Gupta
vinni
95
jasvir
singn
jazz
90
演示示例:
DomParserDemo.java
packagecom.yiibai.xml;importjava.io.File;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.parsers.DocumentBuilder;importorg.w3c.dom.Document;importorg.w3c.dom.NodeList;importorg.w3c.dom.Node;importorg.w3c.dom.Element;publicclassDomParserDemo{publicstaticvoidmain(String[]args){try{FileinputFile=newFile("input.txt");DocumentBuilderFactorydbFactory=DocumentBuilderFactory.newInstance();DocumentBuilderdBuilder=dbFactory.newDocumentBuilder();Documentdoc=dBuilder.parse(inputFile);doc.getDocumentElement().normalize();System.out.println("Root element :"+doc.getDocumentElement().getNodeName());NodeListnList=doc.getElementsByTagName("student");System.out.println("----------------------------");for(inttemp=0;temp
这将产生以下结果:
Root element :class
----------------------------
Current Element :student
Student roll no : 393
First Name : dinkar
Last Name : kad
Nick Name : dinkar
Marks : 85
Current Element :student
Student roll no : 493
First Name : Vaneet
Last Name : Gupta
Nick Name : vinni
Marks : 95
Current Element :student
Student roll no : 593
First Name : jasvir
Last Name : singn
Nick Name : jazz
Marks : 90
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。