怎么用dom4j 修改XML文件中的信息?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用dom4j 修改XML文件中的信息?相关的知识,希望对你有一定的参考价值。

XML文件中有很多IP地址,要修改这些IP地址中其中的一部分。修改的IP地址是通过网页传递过来的。

参考技术A public class UpdateDom4j

public static void updateXml(String xml)
Document doc = null;
try
doc = DocumentHelper.parseText(xml); //将xml生成Document
catch (DocumentException e)
// TODO Auto-generated catch block
e.printStackTrace();


List<Element> list = doc.selectNodes("/setting/person"); //查询指定标签,返回该标签的list
/*
* 解析list
* */
if(!list.isEmpty())
for(Element element : list)

//输出name标签的text
System.out.println(element.elementText("name"));
//if内执行修改
if("language".equals(element.elementText("name")))
Element e1 = element.element("value");
e1.setText("en");

//输出value标签的text
System.out.println(element.elementText("value"));





public static void main(String[] args)
String xml = "<setting>" +
"<person><name>language</name><value>zh</value></person>" +
"<person><name>sns</name><value>open</value></person>" +
"</setting>";

updateXml(xml);


参考技术B //使用SAXReader来解析XML文档
SAXReader reader = new SAXReader();
//忽略元素的开始标签、结束标签之间的空白
reader.setStripWhitespaceText(true);
//将元素之间相邻的文本内容合并处理
reader.setMergeAdjacentText(true);
Document doc = reader.read(new File("book.xml"));
//获取XML文档的根元素
Element root = doc.getRootElement();
//创建一个“计算机书籍”子元素
Element pcBook = root.addElement("计算机书籍");
//添加一个随机数作为isbn属性值
pcBook.addAttribute("isbn" , Math.round((Math.random() * 1000)) + "");
//为“计算机书籍”元素添加“书名”子元素,并设置属性值
Element name = pcBook.addElement("书名");
name.setText("疯狂Java讲义");
//为“计算机书籍”元素添加“价格”子元素,并设置属性值
Element price = pcBook.addElement("价格");
price.setText(99.00 + "");
//定义一个输出格式对象
OutputFormat format = new OutputFormat(" ", true, "GBK");
FileWriter fw = new FileWriter("book.xml");
//定义一份XMLWriter对象
XMLWriter writer = new XMLWriter(fw , format);
writer.write(doc);
fw.close();
参考技术C /**
* 修改信息xml字符串中指定节点的信息
* @param userInfo 用户信息xml
* @param nodeName 节点名称
* @param nodeValue 节点的新值
* @return String 返回修改后的xml字符串
* */
public static String doXmlForNode(String info,String nodeName ,String nodeValue)
if(info == null || "".equals(info))
return "";

Document document = null;
String newStr = "";
try
document = DocumentHelper.parseText(info);
Element rootEl = document.getRootElement();
Element personNode;
for(Iterator<?> k = rootEl.elementIterator("元素名"); k.hasNext();)
personNode = (Element)k.next();
personNode.element(nodeName).setText(nodeValue);

newStr = document.asXML();
catch(Exception ex)
ex.printStackTrace();

return newStr;

可以参考下。

以上是关于怎么用dom4j 修改XML文件中的信息?的主要内容,如果未能解决你的问题,请参考以下文章

xml动态修改 dom4j修改

使用 dom4j 处理 xml (上)

用dom4j生成xml文件。以字符串输出的问题

Java修炼之路——读取XML文件

怎么使用java导出大数据为xml文件

使用dom4j技术来读取xml中的信息。