zoukankan      html  css  js  c++  java
  • 第三方工具Jdom解析XML

    需要导入的jar包:jdom-2.0.6.jar

    package com.huawei.xml;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.List;

    import org.jdom2.Document;
    import org.jdom2.Element;
    import org.jdom2.input.SAXBuilder;
    import org.jdom2.output.Format;
    import org.jdom2.output.XMLOutputter;

    /**
    *
    * JDOM解析
    * @author Administrator
    *
    */
    public class TestJDOMParser {


    public static void parser() throws Exception{
    //得到解析器
    //DOMBuilder 主要用于构建内存中已有的文档
    //SAXBuilder 主要用于 基于文件或是输入流构建文档

    SAXBuilder builder = new SAXBuilder();
    InputStream in = TestJDOMParser.class.getClassLoader().getResourceAsStream("com/cdsxt/resources/Users.xml");
    //得到构建的DOcument
    Document doc = builder.build(in);

    //先得到根节点 然后再去得到 子元素

    Element root = doc.getRootElement();
    //得到所有的儿子元素
    List<Element> childs = root.getChildren();

    for(Element child:childs){
    // System.out.println(child.getAttributeValue("id"));
    System.out.println(child.getChildText("username"));
    }

    }

    public static void updateXMl(){

    }


    /**
    * 创建一个xml文件
    */
    public static void createXML() throws Exception{

    //都建文档
    Document doc = new Document();

    Element root = new Element("Users");

    Element user = new Element("User");
    user.setAttribute("id", "zhanoliu").setAttribute("name", "test-user");

    Element username = new Element("username");
    username.addContent("fengjie");

    Element email = new Element("email");
    email.setText("fenjie@126.com");

    //建立关系
    user.setContent(username);
    user.setContent(email);

    root.addContent(user);

    doc.setRootElement(root);


    //将构建好的Document写出去

    //创建将文件输出器
    XMLOutputter outputter = new XMLOutputter();

    //默认的是没有格式的 所以要获取一个格式化器 去格式话代码

    Format format = Format.getPrettyFormat();
    format.setIndent(" ");
    outputter.setFormat(format);

    //构建文件输出流
    OutputStream out = new FileOutputStream(new File("F:/tttt.xml"));
    //输出文件
    outputter.output(doc, out);

    out.flush();
    out.close();

    }



    public static void main(String[] args) throws Exception {
    //parser();
    createXML();
    }

    }

  • 相关阅读:
    当el-input输入多行内容,反显时,字符串需要换行显示
    【前端】记录自己在leetcode上的刷题之路
    本地提代码到github上,不显示贡献值的问题
    关于对象的深拷贝和浅拷贝
    js判断两个数值区间是否存在重叠或覆盖
    解决vue-print-nb打印el-table,不同分辨率下,打印显示不全的问题
    vue实现置顶功能
    el-table设置自定义表头,当表头内容过长时,鼠标悬浮显示完整内容
    省市用element级联选择器,构造树形结构的数据(两层)
    STL隐蔽知识点
  • 原文地址:https://www.cnblogs.com/hwgok/p/5763309.html
Copyright © 2011-2022 走看看