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

来源:互联网 发布:通达信macd公式源码 编辑:程序博客网 时间:2024/05/22 13:13

说来惭愧,给很多人说过怎么用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>

0 0
原创粉丝点击