DOM方式解析XML文档 解析器Parser;三种Node区别 ElementNode AttributeNode TextNode
来源:互联网 发布:电气图设计软件 编辑:程序博客网 时间:2024/05/29 09:14
目标:解析books.xml文档并输出图书信息
1. 解析器Parser
首先解析XML文件之前要理解 解析器Parser是个什么东西
所谓 parser,一般是指把某种格式的文本(字符串)转换成某种数据结构的过程。最常见的> parser,是把程序文本转换成编译器内部的一种叫做“抽象语法树”(AST)的数据结构。我们用记事本写的xml只是文本文件,
简单说,文本文件使用parser解析后才是代码 好比1+2经过解析后编译器才知道这里有两个数1 ,2 然后相加了
所以解析一个xml文档要3个类DBF-DB 最后才得到Document
//newInstance声明 获得一个剖析器parserDocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();//DocumentBuilder得到一个文档剖析器实例DocumentBuilder db =dbf.newDocumentBuilder();//从XML得到一个文档Document document=db.parse("books.xml");
DocumentBuilderFactory官方定义
用于创建解析器;
DocumentBuilder官方定义
用于创建将XML转换为文档Document的文档解析器;
因而先要从Factory里面创建一个解析器,再创建具体的文件解析器,再得到文档;
2.XML三种类型Node是什么和不同
<book name="属性">我是文本,会被识别为TextNode</book>
<></>
这是一个ElementNode
id=”1”这一对键值对是Attribute Node
之间的纯文本会被识别为一个子节点 TextNode
他们对应的属性名和属性值
Document document=db.parse("books.xml"); //遍历循环获得所有的book Element NodeList books=document.getElementsByTagName("book"); for (int i=0;i<books.getLength();i++) { //强转 从Node类型转换为Element类型 每个book是一个Element Element book=(Element) books.item(i); //Element getNodeName有返回值(book) 没有Value; String EleName=book.getNodeName(); //读取Element里的Attribute Node 可以用属性名来得到属性值 //也可以用getAttributes()得到所有属性给NamedNodeMap得到Attribute键值对 //Name-属性名 Value-属性值 String attrValue=book.getAttribute("id"); System.out.println("Element属性名:"+EleName); System.out.println("Attribute属性值:"+attrValue); //ChildNode得到字节点 NodeList ChildNode=book.getChildNodes(); for(int k=0;k<ChildNode.getLength();k++){ //中间有文本空白 会被识别为TextNode 属性名为#Text 属性值为文本内容 //判断是ElementNode 输出属性名 当然还是没有属性值 if(ChildNode.item(k).getNodeType()==Node.ELEMENT_NODE){ //中间文本会被当做第一个子节点// System.out.println(ChildNode.item(k).getNodeName()+" "+ChildNode.item(k).getFirstChild().getNodeValue()); //也可以直接读取Element间文本内容; System.out.println(ChildNode.item(k).getNodeName()+" "+ChildNode.item(k).getTextContent()); } }
阅读全文
0 0
- DOM方式解析XML文档 解析器Parser;三种Node区别 ElementNode AttributeNode TextNode
- dom方式解析xml文档
- 解析XML文档方式之一:dom方式
- 解析XML(三种解析方式DOM,SAX,PULL)
- 以 DOM 方式解析XML文档
- js 通过DOM方式解析XML文档
- android 解析XML最常用的三种方式;DOM解析,SAX解析,PULL解析
- Dom解析XML文档
- DOM 解析 XML 文档
- DOM解析XML文档
- DOM解析XML文档
- DOM解析XML文档
- DOM解析XML文档
- DOM解析XML文档
- Dom解析XMl文档
- DOM解析XML文档
- dom解析XML文档
- DOM解析XML文档
- windows下驱动开发配置(win10,win7,winXP)
- leetcode 139. Word Break
- Segmentation
- 【程序员面试金典】集合栈
- 弱网环境的模拟
- DOM方式解析XML文档 解析器Parser;三种Node区别 ElementNode AttributeNode TextNode
- webstorm phpstorm 激活
- Java内置的观察者模式的使用
- 一文读懂地球上各大物联网平台
- MOOC清华《程序设计基础》第1章第1题:三角形求面积
- 开发手记--解决scrollView 填充不满问题
- 横竖屏切换 cocos2dx
- [DuiLib教程2]第一个测试Demo的配置
- 【信号】---关于SIGCHLD信号