android使用XML-----DOM
来源:互联网 发布:淘宝是日本的吗 编辑:程序博客网 时间:2024/05/20 20:58
ØDOM是一种用于XML文档对象模型,可用于直接访问XML文档的各个部位,在DOM中文档被模拟为树状,其中XML语法的每一个组成部分都表示一个节点,DOM允许用户遍历文档树,从父节点移动到子节点和兄弟节点。并利用某节点类型特有的属性(元素具有属性,文本节点具有文本数据)
Ø节点(XML文档中的每一个成分都是一个节点)
ØDOM是这样规定的:
Ø整个文档是一个节点文档
Ø每一个XML标签是一个元素节点
Ø包含在XML元素中的文本是文本节点
Ø每一个XML属性是一个属性节点
JDK中Dom主要以下列形式体现:
接口:
- org.w3c.dom.NamedNodeMap
- org.w3c.dom.NameList
- org.w3c.dom.Node
- org.w3c.dom.Attr
- org.w3c.dom.CharacterData
- org.w3c.dom.Comment
- org.w3c.dom.Text
- org.w3c.dom.CDATASection
- org.w3c.dom.Document
- org.w3c.dom.DocumentFragment
- org.w3c.dom.DocumentType
- org.w3c.dom.Element
- org.w3c.dom.Entity
- org.w3c.dom.EntityReference
- org.w3c.dom.Notation
- org.w3c.dom.ProcessingInstruction
- org.w3c.dom.NodeList
- NodeList getChildNodes()
- Node getParentNode()
- getFirstChild() getLastChild() getNextSibing() getPreviousSilbing()
- NamedNodeMap getAttrbutes()
- String getNodeName() String getNOdeValue()
NodeLIst NamedNodeMap接口:int getLength() Node item(int index)
CharacterData : String getData()
Document接口: Element getDocumentElement() 返回文档的根元素
Element : String getTagName() String getAttribute(String name )
在JDK中Parser主要有两个:
- java.lang.Object
- javax.xml.parsers.DocumentBuilder
- javax.xml.parsers.DocumentBuilderFactory
- javax.xml.parsers.SAXParser
- javax.xml.parsers.SAXParserFactory
类分层结构
- java.lang.Object
- javax.xml.xpath.XPathConstants
- javax.xml.xpath.XPathFactory
接口分层结构
- javax.xml.xpath.XPath
- javax.xml.xpath.XPathExpression
- javax.xml.xpath.XPathFunction
- javax.xml.xpath.XPathFunctionResolver
- javax.xml.xpath.XPathVariableResolver
package com.dom.xml;import java.io.InputStream;import java.util.ArrayList;import java.util.List;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 DomParseService {public DomParseService() {// TODO Auto-generated constructor stub}public List<Book> getBooks(InputStream inputStream) throws Exception {List<Book> list = new ArrayList<Book>();DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document document = builder.parse(inputStream);Element element = document.getDocumentElement();NodeList bookNodes = element.getElementsByTagName("book");for (int i = 0; i < bookNodes.getLength(); i++) {Element bookElement = (Element) bookNodes.item(i);Book book = new Book();book.setId(Integer.parseInt(bookElement.getAttribute("id")));NodeList childNodes = bookElement.getChildNodes();// System.out.println("*****"+childNodes.getLength());for (int j = 0; j < childNodes.getLength(); j++) {if (childNodes.item(j).getNodeType() == Node.ELEMENT_NODE) {if ("name".equals(childNodes.item(j).getNodeName())) {book.setName(childNodes.item(j).getFirstChild().getNodeValue());} else if ("price".equals(childNodes.item(j).getNodeName())) {book.setPrice(Float.parseFloat(childNodes.item(j).getFirstChild().getNodeValue()));}}}// end for jlist.add(book);}// end for ireturn list;}/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {// TODO Auto-generated method stubString path = "http://localhost:8080/myhttp/books.xml";InputStream input = HttpUtils.getXML(path);DomParseService dom = new DomParseService();List<Book> books = dom.getBooks(input);for (Book book : books) {System.out.println(book.toString());}}}几个类
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document document = builder.parse(inputStream);Element element = document.getDocumentElement();NodeList bookNodes = element.getElementsByTagName("book");
缺点:
必须知道文档的格式
0 0
- android使用XML-----DOM
- Android使用DOM解析xml
- android使用dom解析xml
- android使用XML-----DOM--------进阶
- Android演示使用DOM解析xml文件
- Android使用DOM方式解析XML
- android下使用dom读写xml文件
- android下使用dom读写xml文件
- Android解析XML方式(三)使用DOM解析XML
- Android解析XML方式(三)使用DOM解析XML
- android xml dom解释
- Android--xml解析(Dom)
- Android--DOM解析XML
- Android DOM解析XML
- Android DOM解析XML
- android--------------xml Dom解析
- android DOM解析Xml
- Android DOM解析XML
- hdu-1698-Just a Hook-线段树-区域更新,区域查询
- treeview绑定xml数据
- LeetCode: Merge Intervals [055]
- Maven创建Mina项目的目录
- Android恢复出厂设置流程分析【Android源码解析十】
- android使用XML-----DOM
- 有两个按钮的wxWidgets小程序
- hdu-1540-Tunnel Warfare-线段树
- linux环境下嵌入式开发常用工具安装
- 内存中堆栈
- 鼠标API
- 黑马程序员_GUI
- C#EXCEL 操作类--C#DataToExcel帮助类
- 屏幕适配问题