Java读取和修改XML示例
来源:互联网 发布:mysql缓存机制 编辑:程序博客网 时间:2024/09/21 09:05
本文章系转载~
xml:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<Messages>
<sendName>sendUsers</sendName>
<receiveName>snake</receiveName>
<date>2007-12-04 12:20:00</date>
<status>0</status>
<message>this is Content</message>
</Messages>
</users>
java:
package com.test;
import java.io.File;
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.Node;
import org.w3c.dom.NodeList;
public class UpdateXml {
public static boolean doc2XmlFile(Document document,String filename)
{
boolean flag = true;
try
{
/** 将document中的内容写入文件中 */
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
/**编码 */
//transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File(filename));
transformer.transform(source, result);
}catch(Exception ex)
{
flag = false;
ex.printStackTrace();
}
return flag;
}
public static Document load(String filename)
{
Document document = null;
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
document=builder.parse(new File(filename));
document.normalize();
}
catch (Exception ex){
ex.printStackTrace();
}
return document;
}
/**
* 演示修改文件的具体某个节点的值
*/
public static void xmlUpdateDemo()
{
Document document = load("Message.xml");
Node root=document.getDocumentElement();
/** 如果root有子元素 */
if(root.hasChildNodes())
{
/** ftpnodes */
NodeList ftpnodes = root.getChildNodes();
/** 循环取得ftp所有节点 */
for (int i=0;i<ftpnodes.getLength();i++)
{
NodeList ftplist = ftpnodes.item(i).getChildNodes();
for (int k=0;k<ftplist.getLength();k++)
{
Node subnode = ftplist.item(k);
/** 删除ftp-chn节点 */
// if (subnode.getNodeType()==Node.ELEMENT_NODE&&subnode.getNodeName()=="ftp-chn")
// {
// ftpnodes.item(i).removeChild(subnode);
// }
/** 修改ftp-host的值为 1 */
if (subnode.getNodeType()==Node.ELEMENT_NODE&&subnode.getNodeName()=="status")
{
subnode.getFirstChild().setNodeValue("111");
}
}
}
}
doc2XmlFile(document,"Message2.xml");
}
public static void main(String args[])throws Exception
{
UpdateXml.xmlUpdateDemo();
System.out.println("hello");
}
}
- Java读取和修改XML示例
- java 读取修改xml / properties
- java读取xml和xml写入数据
- java读取xml和xml写入数据
- [Java] JDOM 读取 xml 文件 示例程序初步
- PHP读取和编写XML DOM的实现示例
- PHP读取和编写XML DOM的实现示例
- PHP读取和编写XML DOM示例代码
- 修改、读取xml属性
- Ajax读取Xml精简示例
- Ajax读取Xml精简示例
- tinyXML 简单读取xml示例
- 读取xml文件小示例
- 在Java下使用DOM来读取/修改Xml文件
- java读取和修改ini配置文件
- java读取和修改ini配置文件
- Java读取和修改ini配置文件
- Java读取和修改ini配置文件
- dll的def文件与__declspec(dllexport)导出函数方式比较
- Android中多线程及异步处理
- 如何求一棵二叉树深度和叶子数(递归)C++版
- .net(c#)中Array和ArrayList的异同点
- [微软]有两个序列a,b,大小都为n,序列元素的值任意整数,无序; 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小
- Java读取和修改XML示例
- 交叉编译mysql客户端libmysql
- 【HDU2571】命运
- 用linux装逼->各文件夹的作用
- 【Eclipse及其插件下载网址大全】
- Unix/Linux中rc代表什么意思
- 怎样能用picturebox切换图片 就是有一个按钮上一张 下一张那样
- 一个实现 IFormattable 接口的例子
- TopCoder 2 Lottery