Java读写xml文件的一些经验(使用dom4j)

说来惭愧,给很多人说过怎么用Java读写xml,但是自己上手做的很少。这篇博客里面简单总结一下。

据网上很多文章介绍,dom4j是一种常用的xml读写API。不过用的时候首先要注意第一个问题:如果在Bing.com里搜索dom4j,排在第一名的是:http://www.dom4j.org/ 很遗憾,这个域名和dom4j没有任何关系,其在Sourceforge上的主页是:http://sourceforge.net/projects/dom4j/ ,我这里下载的是稳定版,将dom4j-1.6.1.jar加入项目的Java Build Path中,我们就可以使用dom4j了。

由于网上dom4j的教程很多,我这里只贴上我自己的代码:

public static void ReadandWritexml(String testCaseName){
        XMLWriter writer = null;
        SAXReader reader = new SAXReader();
        OutputFormat format = OutputFormat.createPrettyPrint();
 
        String filePath = "build.xml";
        File file = new File(filePath);
        try {
            Document document=reader.read(file);
            Element root=document.getRootElement();
            for(Iterator i=root.elementIterator("target");i.hasNext();){
                Element target = (Element) i.next();
                if(target.attributeValue("name").equals("test2")){
                    System.out.println(target);
                    Iterator j=target.elementIterator("junit");
                    Element junit = (Element) j.next();
                    Iterator k=junit.elementIterator("test");
                    Element test = (Element) k.next();
                    test.setAttributeValue("name", testCaseName);
                }
            }
            try {
                writer=new XMLWriter(new FileWriter(filePath),format);
                writer.write(document);
                writer.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

对应的build.xml文件如下:

<target name="test2" depends="compile-main">
  <mkdir dir="test-results-2"/>
  <junit printsummary="on" errorProperty="test.failed" failureProperty="test.failed" fork="true" showoutput="true" haltonfailure="yes">
    <formatter type="plain"/>
    <formatter type="xml"/>
    <jvmarg value="-XX:-UseSplitVerifier"/>
    <classpath refid="test.classpath"/>
    <syspropertyset refid="junit.properties"/>
    <jvmarg value="${poi.test.locale}"/>
    <jvmarg value="-ea"/>
    <jvmarg value="-Xms512m"/>
    <jvmarg value="-Xmx512m"/>
    <jvmarg value="-XX:-UseGCOverheadLimit"/>
    <jvmarg value="-XX:+UseConcMarkSweepGC"/>
    <jvmarg value="-javaagent:lib/aspectjweaver-1.6.11.jar"/>
    <test todir="test-results-2" name="org.apache.poi.ddf.TestEscherBlipRecord"/>
  </junit>
  <junitreport>
    <fileset dir="test-results-2" includes="*.xml"/>
    <report todir="test-results-2"/>
  </junitreport>
  <fail message="Tests failed!" if="test.failed"/>
</target>

你可能感兴趣的:(Java读写xml文件的一些经验(使用dom4j))