Java操作xml文件的心得

最近工作涉及到对xml文件的操作,记点心得。

java可以有四种方法操作xml文件,我采用了dom方式,跟js中对html元素的操作有些类似。

用到的jar包:http://download.csdn.net/detail/sdsky1987/4083634

 

读取xml文件:

?
1
2
3
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
org.w3c.dom.Document document = db.parse( "c:\\test.xml" );

增加节点root并赋属性code, locale, version。添加子节点child, 并为子节点赋值"text":

?
1
2
3
4
5
6
7
8
9
10
org.w3c.dom.Element root = document.createElement( "root" );
root.setAttribute( "code" , code);
root.setAttribute( "locale" , locale);
root.setAttribute( "version" , getCapVersion());
document.appendChild(root);
 
org.w3c.dom.Element child = document.createElement( "child" );
Text nameValue = doc.createTextNode( "text" );
root.appendChild(child);
child.appendChild(value);

修改第一个root节点的属性值code为"code modified"(注:getElementsByTagName取出来的是一个节点数组):

?
1
2
3
4
5
6
NodeList nodelList = document.getElementsByTagName( "root" );
Element element = (Element) nodeList.item( 0 );
String code = element.getAttribute( "code" );
if (code !=  null ){
     element.setAttribute( "code" "code modified" );
}

修改所有child节点的值为"new text"(标签对里面的内容):

?
1
2
3
4
5
NodeList nodeList = document.getElementsByTagName( "child" );
for ( int  i =  0 ; i < nodeList.getLength(); i++){
     Element element = (Element) nodeList.item(i);
     element.setTextContent( "new text" );
}

删除root节点属性locale,删除子节点child:

?
1
2
3
4
5
6
7
NodeList nodeList = document.getElementsByTagName( "root" );
for ( int  i =  0 ; i < nodeList.getLength(); i++){
     Element element = (Element) nodeList.item(i);
     element.removeAttribute( "locale" );
     NodeList childNodeList = element.getElementsByTagName( "child" );
     nodeList.removeChild(childNodeList.item( 0 ));
}

最后作完修改,别忘记保存test.xml:

?
1
2
3
4
5
6
7
8
9
10
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource domsource =  new  DOMSource(document);
//设置编码,换行,缩进
transformer.setOutputProperty(OutputKeys.ENCODING,  "UTF-8" );
t.setOutputProperty(OutputKeys.INDENT, "yes" );
t.setOutputProperty(OutputKeys.METHOD,  "xml" );
//保存xml
StreamResult result =  new  StreamResult( "C:\\test.xml" );
transformer.transform(domsource, result);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值