使用DOM解析XML
来源:互联网 发布:合肥it 编辑:程序博客网 时间:2024/06/01 08:51
DOM(Document Object Model,文档对象模型)是w3c定义的一套规范标准,规定了解析文档的接口。DOM规范中所指的文档比较广泛,包括XML文件和HTML文件。在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型就称为DOM。具体示例如下:
DOM解析器的代码:
public class DomXmlParser implements XmlParse { public static void main(String[] args) { DomXmlParser parser = new DomXmlParser(); List<Book> bookList = parser.parseXml("books.xml"); for(Book book:bookList){ System.out.println(book); } } @Override public List<Book> parseXml(String fileName) { List<Book> bookList = new ArrayList<Book>(); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); Document document = null; try { DocumentBuilder documentBuilder = factory.newDocumentBuilder(); document = documentBuilder.parse(new File(fileName)); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } Node rootNode = document.getDocumentElement();// 获得整体的树状结构的根节点 NodeList bookNodeList = rootNode.getChildNodes();// 获得子节点(Book节点) for (int i = 0; i < bookNodeList.getLength(); i++) { Node bookItem = bookNodeList.item(i);// 获得单个Book节点 if (bookItem.getNodeName().equals("book")) { Book book = new Book(); NamedNodeMap map = bookItem.getAttributes(); Node namedItem = map.getNamedItem("bookno"); String bookNoValue = namedItem.getNodeValue(); book.setBookNo(bookNoValue); NodeList childNodesList = bookItem.getChildNodes(); for (int j = 0; j < childNodesList.getLength(); j++) { Node node = childNodesList.item(j); String str = node.getNodeName(); if (str.equals("title")) { book.setName(node.getTextContent().trim()); } else if (str.equals("price")) { book.setPrice(Integer.parseInt(node.getTextContent().trim())); }else if (str.equals("author")) { book.setAuthor(node.getTextContent().trim()); } } bookList.add(book); } } return bookList; }}
book.xml代码:``<?xml version="1.0" encoding="utf-8"?><books> <book bookno="001"> <title>Java设计</title> <price>80</price> <author>张三</author> </book> <book bookno="002"> <title>android设计</title> <price>100</price> <author>李四</author> </book></books>
Book类代码:
public class Book { private String name; private String author; private int price; private String bookNo; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public Book() { super(); } public String getBookNo() { return bookNo; } public void setBookNo(String bookNo) { this.bookNo = bookNo; } public Book(String name, String author, int price, String bookNo) { super(); this.name = name; this.author = author; this.price = price; this.bookNo = bookNo; } @Override public String toString() { return "Book [name=" + name + ", author=" + author + ", price=" + price + ", bookNo=" + bookNo + "]"; } }
0 0
- 使用Dom解析XML
- 使用dom解析xml
- 使用DOM解析XML
- 使用DOM解析XML
- XML解析二 使用DOM解析XML
- java解析xml:使用DOM
- 使用DOM解析XML文件
- Android使用DOM解析xml
- 使用DOM解析XML文档
- 轻松使用dom解析xml
- JAVA使用DOM解析XML
- 使用DOM解析XML文档
- 使用Dom解析xml文件
- android使用dom解析xml
- 使用JAXP Dom解析xml
- 使用DOM解析XML文件
- 使用DOM解析XML(一)
- 使用DOM 解析XML文档
- 将自制网格制作为预制体
- Android Studio JNI 开发.so库
- WebSocket在容器化管理平台的应用
- java内存分析
- 【微信小程序】微信开发者工具的使用
- 使用DOM解析XML
- 查找------B树、Trie树
- 机器学习
- 基于Android VideoView播放器的封装
- BZOJ 3209 花神的数论题
- 浅谈 Spring 框架注解的用法分析
- 视图的作用
- yii1.1 -----1
- Shader Forge教程二版