Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29954838
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Java

2009-11-30 23:11:57

API帮助文档:
处理DEMO整理:
DEMO一:使用API生成XML文档
package xml.utils;

import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Document;
public class Foo {
    public Document createDocument() {
        Document document = DocumentHelper.createDocument();
        Element root = document.addElement("root");
        Element author1 = root.addElement("author")
        .addAttribute("name","job")
        .addAttribute("location", "US")
        .addText("HKEBAO");
        return document;
    }
    public static void main(String[] args) {
        Document document = new Foo().createDocument();
        System.out.println(document.asXML());
    }
}
输出的结果:

HKEBAO
直接通过内置的API输出一段XML出来!

DEMO2 :通过使用API进行读取XML里面的数据。
原理:将XML解析到内存然后生成一棵DOCUMENT树!
解析的方法有多种
    /**
     * @param File
     * @return Document
     * @throws DocumentException
     * */
    public Document parse(File aFile) throws DocumentException {
        SAXReader xmlReader = new SAXReader();
        return xmlReader.read(aFile);
    }
注意:JAVA里面的File路径问题需要做一个专题讲一下!!!
public static void main(String[] args) throws MalformedURLException, DocumentException {
        File file = new File("dom4j.xml");      
        Document document = new Foo().parse(file);
        new Foo().bar(document);
        System.out.println(document.asXML());
    }
我们可以通过这样的方法来读出来一个XML文档。读出来了之后就可以方便进行解析了!

DEMO3
public void modifyDocumet(File inputxml) {
        try {
            SAXReader saxReader = new SAXReader();
            Document document = saxReader.read(inputxml);
            List list = document.selectNodes("//article/@level");//使用了XPath语法
            Iterator iter = list.iterator();
            while (iter.hasNext()) {
                Attribute attribute = (Attribute) iter.next();
                if (attribute.getValue().equals("Intermediate")) {
                    attribute.setValue("Introductory");
                }
            }
            list = document.selectNodes("//article/@date" );
            iter = list.iterator();
            while (iter.hasNext()) {
                Attribute attribute = (Attribute) iter.next();
                if(attribute.getValue().equals("December-2001"))
                    attribute.setValue("2002");
            }
            list = document.selectNodes("//article" );
            iter=list.iterator();
            while(iter.hasNext()){
                Element element=(Element)iter.next();
                Iterator iterator=element.elementIterator("title");
                while(iterator.hasNext()){
                    Element titleElement=(Element)iterator.next();
                    if(titleElement.getText().equals("Java configuration with XMLSchema"))
                        titleElement.setText("Create flexible and extensible XML schema");
                }
            }
        } catch (Exception e) {
            // TODO: handle exception
        }




阅读(1234) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-12-03 10:19:19

You might also want to look at vtd-xml, the next generation XML processing model that is far more powerful than DOM and SAX http://vtd-xml.sf.net