使用JDOM方式解析XML

Posted 柠檬学园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用JDOM方式解析XML相关的知识,希望对你有一定的参考价值。


一、需要导入JDOM包http://www.jdom.org/ 

二、XML文件

使用JDOM方式解析XML



三、开始解析

public class JDOMTest {


    public static void main(String[] args) { 

       // 进行对books.xml文件的JDOM解析

       // 准备工作

       // 1.创建一个SAXBuilder的对象

       SAXBuilder builder = new SAXBuilder();

        try {

            // 2.创建一个输入流,将xml文件加载到输入流中

           InputStream in = new FileInputStream("books.xml"); 

           // 3.通过saxBuilder的build方法,将输入流加载到saxBuilder中            Document document = builder.build(in);

            // 4.通过document对象获取xml文件的根节点

           Element rootElement = document.getRootElement();

            // 5.获取根节点下的子节点的List集合

           List<Element> bookList = rootElement.getChildren(); 

           for (Element book : bookList) {

                System.out.println("==========开始解析第"                        + (bookList.indexOf(book) + 1) + "本书==========");


                 List<Attribute> attrBook = book.getAttributes(); 

            // 解析book的属性集合

           for (Attribute attr : attrBook) {

              String attrName = attr.getName();

              String attrValue = attr.getValue();

              System.out.println("属性:"+attrName+"---值:"+attrValue);

                }

              List<Element> bookChildren = book.getChildren();

                // 对book节点的子节点的节点名以及节点值的遍历

               for (Element element : bookChildren) {

                    System.out.print("节点:"+element.getName()+"---值:");                    System.out.println(element.getValue());

                }

               System.out.println("==========结束解析第

                       + (bookList.indexOf(book) + 1) + "本书==========");

            }


        }  catch (FileNotFoundException e) {

            // TODO Auto-generated catch block

           e.printStackTrace();

        } catch (JDOMException e) {

            // TODO Auto-generated catch block

           e.printStackTrace();

        } catch (IOException e) {

            // TODO Auto-generated catch block

           e.printStackTrace();

        }

    }

 }


解析结果:

使用JDOM方式解析XML



XML包放置问题


直接在你的工程下面建一个xml目录,访问时就直接用xml/XXX.xml就行了


JAVA解析XML实例


Java解析XML的四种方法—DOM/SAX/jdom/dom4j


配制文件(要放在src的根目录下) test.xml 

Xml代码  

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <HD>  

  3.     <disk name="C">  

  4.         <capacity>8G</capacity>  

  5.         <directories>200</directories>  

  6.         <files>1580</files>  

  7.     </disk>  

  8.     <disk name="D">  

  9.         <capacity>10G</capacity>  

  10.         <directories>500</directories>  

  11.         <files>3000</files>  

  12.     </disk>  

  13. </HD>  


类 Sample1 

Java代码  

  1. package com.phl;  

  2. import java.util.List;  

  3. import org.jdom.Document;  

  4. import org.jdom.Element;  

  5. import org.jdom.input.SAXBuilder;  

  6. public class Sample1 {  

  7.     public static void main(String[] args) throws Exception {  

  8.         SAXBuilder sb = new SAXBuilder();// 创建一个SAXBuilder对象  

  9.         Document doc = sb.build(Sample1.class.getClassLoader().getResourceAsStream("test.xml"));  

  10. // 构造文档对象

  11.         Element root = doc.getRootElement(); // 获取根元素  

  12.         List list = root.getChildren("disk");// 取名字为disk的所有元素  

  13.         for (int i = 0; i < list.size(); i++) {  

  14.             Element element = (Element) list.get(i);  

  15.             String name = element.getAttributeValue("name");// 获取元素中属性为name的值  

  16.             String capacity = element.getChildText("capacity");// 取disk子元素capacity的内容  

  17.             String directories = element.getChildText("directories");  

  18.             String files = element.getChildText("files");  

  19.             System.out.println("磁盘信息:");  

  20.             System.out.println("分区盘符:" + name);  

  21.             System.out.println("分区容量:" + capacity);  

  22.             System.out.println("目录数:" + directories);  

  23.             System.out.println("文件数:" + files);  

  24.             System.out.println("-----------------------------------");  

  25.         }  

  26.     }  

  27. }  

以上分享如果未能解决你的问题,

可留言评论你们学习过程遇到的问题,

我们将于下期内容更新时根据大家的提问和需求做出解答。


PS:特此鸣谢本内容提出者@华强 同学

以上是关于使用JDOM方式解析XML的主要内容,如果未能解决你的问题,请参考以下文章

XML--Java中的四种常见解析方式--jdom与dom4j

java解析xml

使用jdom进行xml解析,网络抓包

Android JDOM2 xml解析,IOExcetion

Java解析XML格式串(JDOM解析)

使用Jdom解析XML