一、DOM读取

import ***;

public class ReadXML {

  public static void main(String[] args) {
    try {
      //DOM
      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
      DocumentBuilder builder = factory.newDocumentBuilder();
      Document document = builder.parse(new File("languages.xml"));
      Element root = document.getDocumentElement();
      System.out.println("cat="+root.getAttribute("cat"));
      NodeList list = root.getElementsByTagName("lan");
      for (int i = 0; i < list.getLength(); i++) {
        Element lan = (Element) list.item(i);
        System.out.println("---------------");
        System.out.println("id="+lan.getAttribute("id"));
        NodeList clist = lan.getChildNodes();
        for (int j = 0; j < clist.getLength(); j++) {
          Node c = clist.item(j);
          if (c instanceof Element) {//这一行的作用是将元素键的回车换行等不可见的元素如#text去掉
            System.out.println(c.getNodeName()+"="+c.getTextContent());
          }
        }
      }
    } catch (**){...}

}

xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<Languages cat="it">
  <lan id="1">
  <name>Java</name>
  <ide>Eclipse</ide>
  </lan>
  <lan id="2">
  <name>Swift</name>
  <ide>Xcode</ide>
  </lan>
  <lan id="3">
  <name>C#</name>
  <ide>Visual Studio</ide>
  </lan>
</Languages>

二、DOM创建XML

  //DOM

  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  DocumentBuilder builder = factory.newDocumentBuilder();
  Document document = builder.newDocument();
  Element root = document.createElement("Languages");
  root.setAttribute("cat", "it");

  Element lan1 = document.createElement("lan");
  lan1.setAttribute("id", "1");
  Element name1 = document.createElement("name");
  name1.setTextContent("Java");
  Element ide1 = document.createElement("ide");
  ide1.setTextContent("Eclipse");
  lan1.appendChild(name1);
  lan1.appendChild(ide1);

  Element lan2 = document.createElement("lan");
  lan2.setAttribute("id", "2");
  Element name2 = document.createElement("name");
  name2.setTextContent("Swift");
  Element ide2 = document.createElement("ide");
  ide2.setTextContent("XCode");
  lan2.appendChild(name2);
  lan2.appendChild(ide2);

  Element lan3 = document.createElement("lan");
  lan3.setAttribute("id", "3");
  Element name3 = document.createElement("name");
  name3.setTextContent("C#");
  Element ide3 = document.createElement("ide");
  ide3.setTextContent("Visual Studio");
  lan3.appendChild(name3);
  lan3.appendChild(ide3);

  root.appendChild(lan1);
  root.appendChild(lan2);
  root.appendChild(lan3);
  document.appendChild(root);

  //-------------

  TransformerFactory transformerFactory = TransformerFactory.newInstance();
  Transformer transformer = transformerFactory.newTransformer();
  transformer.setOutputProperty("encoding", "UTF-8");

  StringWriter writer = new StringWriter();
  transformer.transform(new DOMSource(document), new StreamResult(writer));
  System.out.println(writer.toString());
  transformer.transform(new DOMSource(document), new StreamResult(new File("newxml.xml")));

Java使用DOM方式读写XML的更多相关文章

  1. salesforce 零基础学习(三十二)通过Streams和DOM方式读写XML

    有的时候我们需要对XML进行读写操作,常用的XML操作主要有Streams和DOM方式. 一.Streams方式 Streams常用到的类主要有两个XmlStreamReader 以及XmlStrea ...

  2. Java——DOM方式生成XML (转)

    http://blog.csdn.net/u012325167/article/details/50943202 使用DOM方式生成XML文件有如下几步: 首先是创建DOM树(即规定XML文件中的内容 ...

  3. 用JAXP的dom方式解析XML文件

    用JAXP的dom方式解析XML文件,实现增删改查操作 dom方式解析XML原理 XML文件 <?xml version="1.0" encoding="UTF-8 ...

  4. 用DOM方式解析XML

    一.用DOM方式解析XML 此例子节点结构如下: 1.获取book节点属性 (1).如果不知道节点的属性,通过 NamedNodeMap attrs = book.getAttributes(); 来 ...

  5. Dom方式解析XML

    public class TestXML { public static void main(String[] args) throws SAXException, IOException { //D ...

  6. 在iOS 开发中用GDataXML(DOM方式)解析xml文件

    因为GDataXML的内部实现是通过DOM方式解析的,而在iOS 开发中用DOM方式解析xml文件,这个时候我们需要开启DOM,因为ios 开发中是不会自动开启的,只有在mac 开发中才自动开启的.我 ...

  7. Java&Xml教程(四)使用DOM方式生成XML文件

    在前面的教程中,我们学习了使用DOM解析方式读取和修改XML文件内容,今天我们来学习如何使用DOM解析机制生成XML文件. 下面是我们对要生成的XML文件的具体要求: 1.根节点元素为"Em ...

  8. Java&Xml教程(三)使用DOM方式修改XML文件内容

    DOM解析方式也可用于修改XML数据,我们可以使用它完成新增元素.删除元素.修改元素值.修改元素属性等操作. 我们的XML文件,内容如下: employee.xml <?xml version= ...

  9. Java&Xml教程(二)使用DOM方式解析XML文件

    DOM XML 解析方式是最容易理解的,它將XML文件作为Document对象读取到内存中,然后你可以轻松地遍历不同的元素和节点对象.遍历元素和节点不需要按照顺序进行. DOM解析方式适合尺寸较小的X ...

随机推荐

  1. 【入门到精通】❤️「Java工程师全栈知识路线」

    持续更新中- Vue前端开发 章节 内容 实践练习 Vue.js高效前端开发 • (实践练习) 第1章 Vue.js高效前端开发 • [ 一.初识Vue.js ] 第2章 Vue.js高效前端开发 • ...

  2. C#中的值传递与引用传递(in、out、ref)

    在C#中,方法.构造函数可以拥有参数,当调用方法或者构造函数时,需要提供参数,而参数的传递方式有两种(以方法为例): 值传递 值类型对象传递给方法时,传递的是值类型对象的副本而不是值类型对象本身.常用 ...

  3. mysql在Linux下大小写敏感设置

    默认情况下,mysql在windows下是不区分大小写的,但是mysql在linux下大小写规则是这样的: 1.数据库名与表名是严格区分大小写的: 2.表的别名是严格区分大小写的: 3.列名与列的别名 ...

  4. monkey怎么做APP自动化?

    前言: monkey是andriod平台自动化测试的一种手段,通过monkey程序模拟触摸屏幕.滑动,滚屏,按键来对设备进行压力测试,检测程序多久会出现异常第一种:设置好命令,做随机自动化 什么时候可 ...

  5. Launch agent by connecting it to the master

    Jenkins Node 是 Windows, Jenkins Server 在 Linux C:\JenkinsAgent\start_jenkins_agent.bat java -DSoftKi ...

  6. linux笔记(一)

    linux 开源镜像网址:http://mirrors.163.com pwd : 展示当前所在的目录的绝对路径 cd : 切换到某个路径  cd 命令,是 Change Directory 的缩写, ...

  7. POJCrossing River

    http://poj.org/problem?id=1700贪心问题 对于一个安排,怎么样是最小的?首先关于花费,对于每次运输,以最节约的方式运输.两种情况,一种最轻的作为往返,另外 一种是每次带一个 ...

  8. winform全局异常处理

    static void Main() { //设置应用程序处理异常方式:ThreadException处理 Application.SetUnhandledExceptionMode(Unhandle ...

  9. 计算机二级考试office专题之绝对引用相对引用

  10. 基于SpringBoot如何实现一个点赞功能?

    基于SpringBoot如何实现一个点赞功能? 解析: 基于 SpringCloud, 用户发起点赞.取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储 ...