当前位置: 代码迷 >> J2EE >> dom4j 解析XML 中同名的节点。 多谢
  详细解决方案

dom4j 解析XML 中同名的节点。 多谢

热度:739   发布时间:2016-04-22 00:48:16.0
dom4j 解析XML 中同名的节点。 谢谢
<?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();        }    }}
  相关解决方案