JAVA解析xml(JDOM,DOM4J)
来源:互联网 发布:淘宝网大童 编辑:程序博客网 时间:2024/06/11 17:12
JDOM解析xml
创建一个SAXBuilder对象,创建输入流 将xml加载到流中,将输入流加载到saxBuilder 返回Document对象
SAXBuilder saxBuilder=new SAXBuilder();InputStream in=new FileInputStream("books.xml");Document document=saxBuilder.build(in);获取根节点
Element element=document.getRootElement();获取子节点的集合
List<Element> list_element=element.getChildren();然后通过ELement的getName与getValue方法进行解析
代码:
public class JdomText { static Book book;static ArrayList<Book> books=new ArrayList<>();public static void main(String[] args) {//创建一个SAXBuilder对象SAXBuilder saxBuilder=new SAXBuilder();try {//创建输入流 将xml加载到流中InputStream in=new FileInputStream("books.xml");//将输入流加载到saxBuilder 返回Document对象Document document=saxBuilder.build(in); //获取根节点Element element=document.getRootElement();//获取子节点List<Element> list_element=element.getChildren(); for (Element element2 : list_element) { book=new Book(); System.out.println("开始遍历第"+(list_element.indexOf(element2)+1)+"本书"); //已知属性名获取属性值//System.out.println(element2.getAttributeValue("id")); //获取属性的集合 遍历获取属性名与内容 List<Attribute> list=element2.getAttributes(); for (Attribute attribute : list) {System.out.print(attribute.getName());System.out.println("------"+attribute.getValue());if (attribute.getName().equals("id")) {book.setId(attribute.getValue());}} //获取book节点的子节点的集合 进行遍历 输出 List<Element> list2= element2.getChildren(); for (Element element3 : list2) {System.out.print(element3.getName());System.out.println("-----"+element3.getValue());if (element3.getName().equals("name")){book.setName(element3.getValue());}else if (element3.getName().equals("year")){book.setYear(element3.getValue());}else if (element3.getName().equals("price")){book.setPrice(element3.getValue());}} System.out.println("结束遍历第"+(list_element.indexOf(element2)+1)+"本书"); books.add(book); book=null;}for (Book book : books) {System.out.println(book.getName()+"+-++-+-+++++");}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}catch (JDOMException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}DOM4J解析
与JDOM不同在于,这个方法返回的是迭代器,那个是List
代码:
public class Dom4j_test {public static void main(String[] args) {//创建SAXReader对象SAXReader reader=new SAXReader();try {//加载xml文件 Document document= reader.read(new File("books.xml"));//获取根节点Element element=document.getRootElement();//获取迭代器Iterator<Element> iterator=element.elementIterator();while (iterator.hasNext()) {//获取节点Element element2 = (Element) iterator.next();//获取并遍历属性List<Attribute> attributes=element2.attributes();for (Attribute attribute : attributes) {System.out.println(attribute.getName()+"-----"+attribute.getValue());}//获取book节点 的子节点 并遍历 Iterator<Element> iterator2= element2.elementIterator(); while (iterator2.hasNext()) {Element element3 = (Element) iterator2.next();System.out.println(element3.getName()+"-------"+element3.getStringValue());}}} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
阅读全文
0 0
- JAVA解析xml(JDOM,DOM4J)
- java解析XML (JDOM & DOM4J,X-stream)(二)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- html 中 a 链接的 download 属性的神奇使用
- 使用Android 编写2048小游戏(二)
- MySQL入门很简单-MySQL存储引擎
- 初识nodejs26
- kafka-manager 安装
- JAVA解析xml(JDOM,DOM4J)
- 函数式编程之高级函数
- wordpress如何路径伪静态处理
- Rsync详解
- [NOIP2017模拟]Fancy Signal Translate
- 微信小程序:json、map、字符串转换
- Cocos2d-Lua 精灵
- MySQL InnoDB锁机制之Gap Lock、Next-Key Lock
- 第三章:3.4 典型周期信号的傅里叶级数分解