Java操作xml文件的心得

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

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

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


读取xml文件:

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

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

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取出来的是一个节点数组):

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"(标签对里面的内容):

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:

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:

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);


转载于:https://my.oschina.net/u/2411391/blog/490657

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值