zoukankan      html  css  js  c++  java
  • Java读取xml

    首先将xml的格式展示出来,如下

    <?xml version="1.0"?>
    <configuration>
      <connectionStrings name="zhangsan">
        <add name="dbSqlServer" connectionString="Data Source=.;Initial Catalog=Life;User ID=sa;pwd=hzsoft"/>
        <add name="dbAccess" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|Life.mdb;"/>
        <add name="dbSqlite" connectionString="Data Source=|DataDirectory|Life.db3;Pooling=true;FailIfMissing=false" providerName="System.Data.SQLite"/>
      </connectionStrings>  
    </configuration>

    此处采用的读取方式是DOM4J,需要先下载对应的jar包,具体下载地址如下:http://nchc.dl.sourceforge.net/sourceforge/dom4j/dom4j-1.6.1.zip

    java的具体代码如下:

    import java.io.File;
    import java.util.List;
    
    import org.dom4j.*;
    import org.dom4j.io.SAXReader;
    
    public class Hello {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            SAXReader reader = new SAXReader();
            File f = new File("D:\Web.xml");
    
            try {
                Document document = reader.read(f);
                Element root = document.getRootElement();
    
                Element conn = root.element("connectionStrings");
    
                String val = conn.attribute("name").getValue();
                System.out.println(val);
    
                List list = conn.elements("add");
    
                for (int i = 0; i < list.size(); i++) {
                    Element ele = (Element) list.get(i);
                    System.out.println(ele.attribute("connectionString").getValue());
                }
    
                ///////// foreach实现
                for (Object obj : list) {
                    Element ele = (Element) obj;
                    System.out.println(ele.attribute("connectionString").getValue());
                }
    
            } catch (DocumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    }

    上面是读取xml文件,写入xml文件的代码如下:

    import java.io.*;
    
    import org.dom4j.*;
    import org.dom4j.io.*;
    
    public class App {
        public static void main(String[] args) throws IOException {
            Document document = DocumentHelper.createDocument();
            Element root = DocumentHelper.createElement("configuration");
            document.setRootElement(root);
    
            Element eleConnectionStrings = root.addElement("connectionStrings");
            eleConnectionStrings.addAttribute("name", "zhangsan");
    
            Element eleAdd = eleConnectionStrings.addElement("add");
            eleAdd.addAttribute("name", "dbSqlServer");
    
            // 格式化,避免写入文件是一行数据
            OutputFormat opf = new OutputFormat();
            opf.setNewlines(true);
            opf.setIndent(true);
            opf.setEncoding("utf-8");//编码格式
            opf.setIndent("    ");// 使用4个空格进行缩进, 可以兼容文本编辑器
    
            XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("config.xml"), opf);
            xmlWriter.write(document);
            // xmlWriter.flush();
            xmlWriter.close(); //上面的方法无法完全释放资源
    
        }
    }

    很久没有接触Java了,最近经理说我们公司将技术转型,由以前的C#转Java,因此回顾一下,特此记录

  • 相关阅读:
    poj1088 经典dp
    poj2301
    poj1050(nyoj104 zoj1074)dp问题
    hdu1003
    poj1001(高精度)
    图的深度优先遍历DFS
    jquery中attr和prop的区别
    Apache 配置域名入口路径
    关于启动定时器和取消定时器的问题
    Web攻防之XSS,CSRF,SQL注入
  • 原文地址:https://www.cnblogs.com/duanjt/p/6838350.html
Copyright © 2011-2022 走看看