Monday, January 31, 2005

dom4j

dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP.

Create XML file

package uhn;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
import org.dom4j.io.OutputFormat;

import java.io.*;

public class Test {

public static void main(String[] args) throws IOException {

Document document = DocumentHelper.createDocument();
Element root = document.addElement( "root" );

root.addElement( "author" )
.addAttribute( "name", "James" )
.addAttribute( "location", "UK" )
.addText( "James Strachan" );

root.addElement( "author" )
.addAttribute( "name", "Bob" )
.addAttribute( "location", "US" )
.addText( "Bob McWhirter" );

OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new FileWriter( "c:\\temp\\foo.xml" ), format);
writer.write(document);
writer.close();
}

}


Parse XML file


package uhn;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.Attribute;

import java.io.*;
import java.util.Iterator;

public class Test {

public static void main(String[] args) throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read("\\temp\\foo.xml");
Element root = document.getRootElement();
for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
Element element = (Element) i.next();

for (int j=0; j<element.attributeCount(); j++) {
System.out.print(element.attribute(j).getName());
System.out.print("\t");
System.out.println(element.attribute(j).getText());
}
System.out.println(element.getText());
}

}

}

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home