w3c.dom组件写xml文件实例

简介:

w3c.dom组件写xml文件实例

package com.yanek.demo.xml.test;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class W3cDomWriteXml {

 /**
  * @param args
  */
 public static void main(String[] args) {

  
  Document doc = null;
  try {
   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
   DocumentBuilder db = dbf.newDocumentBuilder();
   doc = db.newDocument(); 
   
   Element root = doc.createElement("actions");
   doc.appendChild(root);
   
   Element action1 = doc.createElement("action");
   Element action2 = doc.createElement("action");
   
   root.appendChild(action1);
   root.appendChild(action2);
   action1.setAttribute("path","/test");

   action2.setAttribute("path","/user");
   action2.setAttribute("class","com.yanek.mystruts.demo.UserAction");
   action1.setAttribute("class","com.yanek.mystruts.demo.TestAction");
   
   
   Element forward1 = doc.createElement("forward");
   Element forward2 = doc.createElement("forward");
   
   Element forward3 = doc.createElement("forward");
   Element forward4 = doc.createElement("forward");
   
   
   action1.appendChild(forward1);
   action1.appendChild(forward2);
   
   action2.appendChild(forward3);
   action2.appendChild(forward4);
   
   forward1.setAttribute("name","test");

   forward2.setAttribute("name","failure");
   forward1.setAttribute("url","test.jsp");
   forward2.setAttribute("url","failure.jsp"); 
   
   
   forward3.setAttribute("name","user");

   forward4.setAttribute("name","failure");
   forward3.setAttribute("url","list.jsp");
   forward4.setAttribute("url","failure.jsp");
   
   
   
   
   File file = new File("d://type111.xml");
   
   if(!file.exists()) {
    file.createNewFile();
   }
 
   BufferedWriter bw = new BufferedWriter(new FileWriter(file));
   
   //将内存里的dom 转为xml文件
   TransformerFactory tff =TransformerFactory.newInstance();
   Transformer tf = tff.newTransformer();
   tf.setOutputProperty("encoding", "utf-8");
   tf.transform(new DOMSource(doc), new StreamResult(bw));
   bw.close();
   
  } catch(Exception ex) {
   ex.printStackTrace();
  }
  
  
  

 }

}

 

 

生成xml文件:

 

<?xml version="1.0" encoding="utf-8"?><actions><action class="com.yanek.mystruts.demo.TestAction" path="/test"><forward name="test" url="test.jsp"/><forward name="failure" url="failure.jsp"/></action><action class="com.yanek.mystruts.demo.UserAction" path="/user"><forward name="user" url="list.jsp"/><forward name="failure" url="failure.jsp"/></action></actions>

目录
相关文章
|
XML JavaScript Java
【JAVA XML 探秘】DOM、SAX、StAX:揭秘 Java 中 XML 解析技术的终极指南!
【8月更文挑战第25天】本文详细探讨了Java中三种主流的XML解析技术:DOM、SAX与StAX。DOM将XML文档转换为树状结构,便于全方位访问和修改;SAX采取事件驱动模式,适用于大型文件的顺序处理;StAX则兼具DOM和SAX的优点,支持流式处理和随机访问。文中提供了每种技术的示例代码,帮助读者理解如何在实际项目中应用这些解析方法。
696 1
|
XML JavaScript 数据格式
XML DOM 浏览器差异
所有 modern browsers 支持 W3C DOM 规范, 但仍存在差异, 主要是处理空白和换行的不同。例如, 在 XML 中, Internet Explorer 不会将空白或换行视为文本节点, 而其他浏览器则会。这会导致相同的 XML 文档在 IE 中的子节点数为 4, 而在其他浏览器中为 9:
|
XML JavaScript 数据格式
XML DOM 浏览器差异
输出子节点的数量。结果取决于您所使用的浏览器。IE 浏览器会输出 4(提醒 4 个子节点),而其他浏览器会输出 9(提醒 9 个子节点)。
|
XML JavaScript 数据格式
XML DOM 遍历节点树
遍历(Traverse)意味着在节点树中进行循环或移动。
|
XML JavaScript 数据格式
XML DOM 遍历节点树
遍历(Traverse)意味着在节点树中进行循环或移动。
|
XML 存储 JavaScript
XML DOM - 访问节点
通过 DOM, 可全面访问 XML 文档的节点。实现这一目标有 3 种方法: - 使用 `getElementsByTagName()` 方法, - 循环遍历节点树, - 利用节点间关系进行导航。 `getElementsByTagName()` 返回一个 Node List,即一种节点数组形式。示例代码通过 `loadXMLDoc()` 函数加载 &quot;books.xml&quot; 文件到 `xmlDoc` 变量中,并随后在变量 `x` 中保存所需节点信息。
|
XML Web App开发 JavaScript
XML DOM 解析器
大多数浏览器内置了XML解析器,能将XML文档转换为可由JavaScript操作的XML DOM对象。DOM接口允许遍历XML树并支持节点的访问、插入与删除。加载XML文档需先创建XMLHTTP对象,然后打开并发送请求给服务器,最后将响应设置为XML DOM对象以供后续处理。
|
XML 数据格式
Dom4j 保存XML HL7-V3
Dom4j 保存XML HL7-V3
120 0
|
XML 数据格式
dom4j selectNodes 取不到值 因为XML带有命名空间 HL7
dom4j selectNodes 取不到值 因为XML带有命名空间 HL7
203 0
|
XML Web App开发 JavaScript
XML DOM 解析器
大多数浏览器内置了XML解析器,能将XML文档转换为可由JavaScript访问的XML DOM对象。DOM接口提供方法来遍历、访问、插入和删除XML树中的节点。加载XML文档涉及创建XMLHTTP对象,打开并发送请求给服务器,最后将响应设为DOM对象以供操作。