xml操作2
来源:互联网 发布:windows远程桌面命令 编辑:程序博客网 时间:2024/05/22 01:46
package com.util;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Document;
import org.w3c.dom.Text;
import org.xml.sax.SAXException;
/**
* 从xml文件中读取信息或是往xml文件中添加信息
* 使用org.w3c.dom.Document对象操作XML文件
*
* @author yaotengjiao
* @date 2011-8-5
*/
public class ReadInfoFromXML {
/**
* main测试方法
*
* @param args
* @throws SAXException
* @throws IOException
* @throws ParserConfigurationException
* @throws TransformerException
*/
public static void main ( String[] args ) throws ParserConfigurationException, IOException, SAXException,
TransformerException {
readXMLUseDOM ();//读取xml文件内容
writeXMLUseDOM ();//xml文件追加内容
}
/**
* 从xml文件中读取信息
* @throws ParserConfigurationException
* @throws IOException
* @throws SAXException
* @throws SAXException
* 步骤:1、获得要读取的XML文件
* 2、创建Document对象
* 3、获得节点遍历
*
*/
public static void readXMLUseDOM () throws ParserConfigurationException, IOException, SAXException {
String xmlFilePath = "G:/测试文件.xml";
Document doc = createDocument ( xmlFilePath );//创建Document对象
Node firstNode = doc.getElementsByTagName ( "root" ).item ( 0 );//获得根节点
readNode ( firstNode );//循环调用出子节点
}
/**
* 递归调用
*
* @param node
*/
public static void readNode ( Node node ) {
NodeList childNodeList = node.getChildNodes ();
for (int i = 0; i < childNodeList.getLength (); i++) {
Node nd = childNodeList.item ( i );
System.out.println ( "NodeName:" + nd.getNodeName () + " NodeValue:" + nd.getNodeValue ()
+ " TextContent:" + nd.getTextContent () );
readNode ( nd );
}
}
/**
* 往xml文件中添加信息
* @throws ParserConfigurationException
* @throws IOException
* @throws SAXException
* @throws TransformerException
*
* 步骤:1、创建Document对象
* 2、创建Element对象
* 3、为Element对象添加节点属性(若是要显示文本信息则要添加textNode节点对象)
* 4、将创建好的Element对象添加到Document对象中
* 5、创建DOMSource对象
* 6、创建Transformer对象TransformerFactory对象.newInstance ()
* 7、通过Transformer对象来修改文件
*
*/
public static void writeXMLUseDOM () throws ParserConfigurationException, SAXException, IOException,
TransformerException {
String xmlFilePath = "G:/测试文件.xml";
//创建Document对象
Document doc = createDocument ( xmlFilePath );
//创建节点
Text txt;
//创建Element对象
Element link = createElement ( doc, "link" );//两个参数为:Document对象,显示的tagName标签名称
Attr attr = doc.createAttribute ( "属性1" );////添加属性(方式1)添加属性名称
attr.setValue ( "利用方式1添加属性" );//添加属性的值
link.setAttributeNode ( attr );//添加属性
link.setAttribute ( "属性2", "利用方式2添加属性" );//创建TextNode信息,用于显示节点的内容
Element linkText = createElement ( doc, "linkUrl" );
txt = doc.createTextNode ( "text1" );//创建TextNode信息,用于显示节点的内容
txt.setNodeValue ( "113456789" );
linkText.appendChild ( txt );//节点追加
link.appendChild ( linkText );
doc.getDocumentElement ().appendChild ( link );
//将创建的Element信息添加到Document对象当中,修改文件
TransformerFactory tfactory = TransformerFactory.newInstance ();
Transformer transformer = tfactory.newTransformer ();
DOMSource source = new DOMSource ( doc );//数据源对象
StreamResult result = new StreamResult ( new File ( xmlFilePath ) );//以流的方式将文件转换
transformer.transform ( source, result );//将Document对象写入到文件中
}
/**
* 创建element对象
*
* @param doc
* @param tagName
* @return
*/
private static Element createElement ( Document doc, String tagName ) {
return doc.createElement ( tagName );
}
/**
* 创建Document对象
*
* @param filePath
* @return
* @throws ParserConfigurationException
* @throws SAXException
* @throws IOException
*/
private static Document createDocument ( String filePath ) throws ParserConfigurationException, SAXException,
IOException {
File file = new File ( filePath );
//创建一个解析工厂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance ();
DocumentBuilder builder = factory.newDocumentBuilder ();
Document doc = builder.parse ( file );//Document对象是由文件对象转换而来的
doc.normalize ();//清除掉XML文档中作为格式化内容输出的空白字符
return doc;
}
}
- XML操作2
- javascript操作xml 2
- js操作xml(2)
- xml操作2
- php操作xml(2)
- c#操作xml(2)
- linq 2 xml 简单操作
- 操作XML
- XML操作
- xml操作
- 操作XML
- xml 操作
- XML操作
- xml操作
- xml操作
- 操作XML
- XML 操作
- 操作XML
- ruby的include与extend
- XML操作1
- ruby的类方法与实例方法
- 程序终止
- VS2010引用Microsoft.Office.Interop生成时出错
- xml操作2
- 使用APC缓存PHP
- 在Ubuntu下进行OpenGL编程——OPENGL的HELLO WORLD
- 两个 vector 连接
- flex j2EE 例子 和BlazeDs 关于MessageBroker,endpoints 和 channels
- 使用SharedPreferences记住用户名及密码
- HTML转换为PDF格式
- PHP 获取毫秒时间戳
- iis 错误修复