<?xml version="1.0" encoding="UTF-8"?>
<abc>
<a>111</a>
<b>2222</b>
<bc>
<url>http://forum.csdn.net/2121</url>
<url>http://forum.csdn.net/444</url>
<url>http://forum.csdn.net/222</url>
<url>http://forum.csdn.net/2342</url>
<url>http://forum.csdn.net/234</url>
<url>http://forum.csdn.net/33</url>
<url>http://forum.csdn.net/44</url>
<url>http://forum.csdn.net/555</url>
<url>http://forum.csdn.net/666</url>
</bc>
</abc>
上述这种格式的XML。 我需要把 url的节点的内容全部解析出来,用dom4j怎么解析? 如果我解析出来了,我根据什么去修改url的某一个节点? 谢谢
------解决方案--------------------
http://topic.csdn.net/u/20101104/17/5b09429f-994d-4bec-830a-d9064b98a64b.html
------解决方案--------------------
循环bc下所有url结点就可以了。
- Java code
import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.Iterator;import java.util.List;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class Test1 { public static void main(String[] args) { SAXReader reader = new SAXReader(); File file = new File("d:\\test.xml"); try { Document document = reader.read(file); List<Element> urls = document.selectNodes("abc/bc/url"); if(urls != null && urls.size() > 0){ for(Iterator it = urls.iterator();it.hasNext();){ Element url = (Element)it.next(); System.out.println(url.getText());//打印原值 url.setText("http://forum.csdn.net/");//修改 } } OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter output = new XMLWriter(new FileOutputStream(new File("d:\\test1.xml")), format); output.write(document); output.close(); } catch (Exception e) { e.printStackTrace(); } }}