美文网首页Java 杂谈Java
使用JDOM方式解析XML

使用JDOM方式解析XML

作者: java面试笔试 | 来源:发表于2018-08-21 11:41 被阅读15次

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

    二、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 bookList = rootElement.getChildren(); 

        for (Element book : bookList) {

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

                     List attrBook = book.getAttributes(); 

     // 解析book的属性集合

    for (Attribute attr : attrBook) {

                  String attrName = attr.getName();

                  String attrValue = attr.getValue();

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

                    }

                  List 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();

            }

        }

     }

    解析结果:

    XML包放置问题

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

    JAVA解析XML实例

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

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

    Xml代码  

    8G

    200

    1580

    10G

    500

    3000

    类 Sample1 

    Java代码  

    packagecom.phl;

    importjava.util.List;

    importorg.jdom.Document;

    importorg.jdom.Element;

    importorg.jdom.input.SAXBuilder;

    publicclassSample1 {

    publicstaticvoidmain(String[] args)throwsException {

    SAXBuilder sb =newSAXBuilder();// 创建一个SAXBuilder对象

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

    // 构造文档对象

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            }  

        }  

    }  

    公众号:javafirst

    相关文章

      网友评论

        本文标题:使用JDOM方式解析XML

        本文链接:https://www.haomeiwen.com/subject/mlvdiftx.html