zoukankan      html  css  js  c++  java
  • JavaEE XML的读写(利用JDom对XML文件进行读写)

    1.有关XML的写

    利用JDom2包,JDom2这个包中,至少引入org.jdom2.*;如果要进行XML文件的写出,则要进行导入org.jdom2.output.*;

    package com.littlepage.test1;
    
    import java.io.*;
    import org.jdom2.*;
    import org.jdom2.output.*;
    
    public class Test3 {
        public static void main(String[] args) {
            try {
                Element rootElement = new Element("rootElement");
                Document document = new Document(rootElement);
                rootElement.addContent(new Element("student1").addContent(new Element("name").addContent("Jack")).setAttribute("type","transfer student"));
                rootElement.addContent(new Element("student1").addContent(new Element("name").addContent("Nancy")));
                rootElement.addContent(new Element("student1").addContent(new Element("name").addContent("Lucy")));
                XMLOutputter xop = new XMLOutputter();
                //设置间距
                XMLOutputter out=new XMLOutputter();
                Format format=out.getFormat();
                format.setEncoding("GB2312");
                format.setIndent("
    	");
                out.setFormat(format);
                xop.output(document, new FileWriter("student.xml"));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    XML文件写入结果

    <?xml version="1.0" encoding="UTF-8"?>
    <rootElement>
        <student1 type="transfer student">
            <name>Jack</name>
        </student1>
        <student1>
            <name>Nancy</name>
        </student1>
        <student1>
            <name>Lucy</name>
        </student1>
    </rootElement>

    2.有关XML文件的读

    利用SAXBuilder,SAXBuilder在org.xml.input.*;中存在方法SAXBuilder,SAXBuilder是进行XML文件读入的一个类

    //递归打印XML的document
    public class Test4 {
        public static void main(String[] args) {
            try{
                Document document=new SAXBuilder().build("MyXML.xml");
                Element rootElement=document.getRootElement();
                recursionXML(rootElement);
            }catch(IOException|JDOMException e){
                e.printStackTrace();
            }
            
        }
        /**
         * recursion XML,for print the root element
         * @param element
         */
        public static void recursionXML(Element element){
            System.out.println(element.getName()+":"+element.getText());
            if(!element.getChildren().isEmpty()){
                List<Element> li=element.getChildren();
                for (Element element2 : li) {
                    recursionXML(element2);
                }
            }
        }
       /
    }
  • 相关阅读:
    NOIP 2012 文化之旅
    史上最全的各种C++ STL容器全解析
    详解C++ STL map 容器
    详解C++ STL priority_queue 容器
    浅谈C++ STL stack 容器
    浅谈C++ STL queue 容器
    浅谈C++ STL vector 容器
    CF1185F Two Pizzas
    浅谈C++ STL deque 容器
    详解C++ STL multiset 容器
  • 原文地址:https://www.cnblogs.com/littlepage/p/10492388.html
Copyright © 2011-2022 走看看