`

XML解析方式

    博客分类:
  • XML
 
阅读更多
XML网络应用
      DOM(Document Object Model,文档对象模型):它是由W3C定义的独立于语言与平台的XML处理接口规范,并在多种语言中得到了实现。XML文档结构类似于一棵树,而DOM规范正是将XML的树形结构映射到内存中的一个树形的树形结构上。在这棵树上,每个节点对应这XML文档树的一个节点,允许动态操作这个树模型的内容风格和结构。

   

     SAX(Simple API for XML,XML的简单API)提供了一个事件驱动,顺序访问的机制来读取XML文档的内容。与DOM相比,SAX具有更快的处理速度和更低的内存需求,因此他被经常用于各类面向网络的应用。但是,采用SAX机制将比采用DOM接口要求更多的代码,因为它是事件驱动的,需要实现它的回调接口。





XML exam





Java代码 
public class Employee{  
    private long id;  
    private String name;  
    private boolean isMale;  
      
    public Employee(){  
          
    }  
      
    public Employee(long id,String name,boolean isMale){  
        this.id=id;  
        this.name=name;  
        this.isMale=isMale;  
    }  
      
    public long getId() {  
        return id;  
    }  
    public void setId(long id) {  
        this.id = id;  
    }  
    public boolean isMale() {  
        return isMale;  
    }  
    public void setMale(boolean isMale) {  
        this.isMale = isMale;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  


public class Employee{
private long id;
private String name;
private boolean isMale;

public Employee(){

}

public Employee(long id,String name,boolean isMale){
this.id=id;
this.name=name;
this.isMale=isMale;
}

public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public boolean isMale() {
return isMale;
}
public void setMale(boolean isMale) {
this.isMale = isMale;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

读写xml文件

Java代码 
import java.io.File;  
import java.io.FileWriter;  
import java.io.IOException;  
import java.util.ArrayList;  
import java.util.Iterator;  
import java.util.List;  
 
import org.dom4j.Attribute;  
import org.dom4j.Document;  
import org.dom4j.DocumentException;  
import org.dom4j.DocumentHelper;  
import org.dom4j.Element;  
import org.dom4j.io.SAXReader;  
import org.dom4j.io.XMLWriter;  
 
/** 
* XML读写示例 
* @author xzy 

*/ 
public class XmlReaderWriter{  
    /** 
     * 读取一个XML文件,返回一个雇员链表 
     * @param fileName 
     * @return 
     */ 
    public List<Employee> readXml(String fileName){  
        List<Employee> employees=new ArrayList<Employee>();  
          
        SAXReader reader = new SAXReader();  
        try {  
            Document  document = reader.read(new File(fileName));  
            Element root = document.getRootElement();  
              
            List nodes = root.elements("employee");  
 
            for (Iterator it = nodes.iterator(); it.hasNext();) {  
                Employee employee=new Employee();  
                  
                // 根节点下的雇员子节点  
                Element employeeElm = (Element) it.next();  
                  
                // 获取雇员子节点的id属性  
                Attribute attribute=employeeElm.attribute("id");  
                employee.setId(Long.parseLong(attribute.getText()));// 将文本形式的long字符串还原成基本类型  
                  
                // 获得雇员子节点的名称子节点  
                Element nameElm=employeeElm.element("name");  
                employee.setName(nameElm.getText());// 获取名称子节点的文字  
                  
                // 获取雇员子节点的性别子节点的文字  
                employee.setMale(Boolean.parseBoolean(employeeElm.element("ismale").getText()));  
                  
                // 将雇员信息放入链表  
                employees.add(employee);  
            }  
              
        } catch (DocumentException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
          
          
        return employees;  
    }  
      
    /** 
     * 将一个雇员链表写入XML文档 
     * @param employees 
     * @param fileName 
     */ 
    public void writerToFile(List<Employee> employees,String fileName){  
        // 创建文档对象  
        Document document = DocumentHelper.createDocument();  
        // 创建根节点  
        Element root = document.addElement("employees");  
          
        for(Employee emp:employees){  
            // 创建employee节点  
            Element empElm = root.addElement("employee");  
              
            // 创建employee节点的id属性  
            empElm.addAttribute("id", String.valueOf(emp.getId()));  
              
            // 创建employee节点的子节点name  
            Element nameElm = empElm.addElement("name");  
            nameElm.setText(emp.getName());// 设置子节点的文字  
              
            // 创建employee节点的子节点ismale             
            Element ismaleElm = empElm.addElement("ismale");  
            ismaleElm.setText(String.valueOf(emp.isMale()));// 设置子节点的文字  
        }  
          
        // 将document文档对象写入文件  
        XMLWriter writer;  
        try {  
            writer = new XMLWriter(new FileWriter(fileName));  
            writer.write(document);  
            writer.close();  
                  
        } catch (IOException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }         
    }  
      
    public static void main(String[] args){  
/*      List<Employee> employees=new ArrayList<Employee>(); 
        employees.add(new Employee(1,"Andy",true)); 
        employees.add(new Employee(2,"Bill",false)); 
        employees.add(new Employee(3,"Cindy",true)); 
        employees.add(new Employee(4,"Doutglas",false)); 
         
        XmlReaderWriter xmlReaderWriter=new XmlReaderWriter(); 
        xmlReaderWriter.writerToFile(employees, "Employees.xml");*/ 
          
        XmlReaderWriter xmlReaderWriter=new XmlReaderWriter();  
        List<Employee> employee=xmlReaderWriter.readXml("Employees.xml");  
          
          
    }  

分享到:
评论

相关推荐

    java XML解析方式实现自动生成word文档

    XML解析方式是一种高效且灵活的方法,能够帮助我们实现这一目标。本篇文章将详细探讨如何利用Java和XML解析来自动化创建Word文档。 首先,我们需要了解XML的结构。XML(Extensible Markup Language)是一种标记语言...

    C# XML解析方式

    ### C#中的XML解析方式 #### 1. XML Text Reader(流式解析) - **简介**:在.NET框架中,`XMLTextReader`是一种高效的流式XML解析器,适用于处理大型XML文档或当只需要读取文档的部分内容时。 - **特点**: - **...

    xml解析方式大全

    xml解析方式包括w3c dom,sax,xpp,stax,vtd方式,其实还有jdom和xmlevent这样才够全面

    C# XML 解析方式

    它提供了一种高效但功能有限的XML解析方式,不支持修改XML文档,适用于大文件或网络流: ```csharp using (XmlReader reader = XmlReader.Create("example.xml")) { while (reader.Read()) { if (reader....

    Android Xml解析方式

    总结,这三种XML解析方式各有优劣。DOM适合小规模、快速访问的数据;PULL和SAX适合大规模、低内存占用的情况,其中PULL更易于使用,而SAX对资源的利用更高效。在实际开发中,应根据项目需求和XML文件大小选择合适的...

    XML解析方式对比(含XPP3解析)

    总结来说,XML解析方式有DOM、SAX和Pull解析,其中XPP3作为Pull解析的一种实现,以其高效和灵活的特性在处理XML时具有优势。通过集成XPath,XPP3进一步提升了查询和处理XML文档的能力。在开发过程中,根据项目需求和...

    android的三种xml解析方式

    Pull解析是Android特有的XML解析方式,它类似于SAX解析,也是事件驱动的,但提供了更简洁的API。Pull解析器非常适合在有限的内存环境中处理XML,例如在Android设备上。以下是一个基本的Pull解析示例: ```java ...

    java常用的4种xml解析方式

    ### Java常用的四种XML解析方式详解 #### 一、DOM(Document Object Model)解析 DOM是一种树状结构的解析方式,由W3C推荐标准。它将XML文档转换为树形结构,每个节点都是一个对象,可以对这些对象进行读取、修改等...

    XML解析方式SAX和DOM比较.

    XML(eXtensible Markup Language)是一种用于存储和传输数据的...在实际开发中,根据项目需求和资源限制选择合适的XML解析方式至关重要。理解SAX和DOM的特性可以帮助我们更好地处理XML数据,提高程序的效率和稳定性。

    android 三种xml解析方式整合

    对于XML的处理,Android提供了三种主要的解析方式:DOM(Document Object Model)、SAX(Simple API for XML)和PULL(Pull Parser)。下面将详细介绍这三种解析方式及其特点。 1. DOM解析: DOM解析器会将整个XML...

    iphone开发之xml解析

    在iOS开发中,有两种主要的XML解析方式:DOM(Document Object Model)和SAX(Simple API for XML)。 1. DOM解析: DOM解析器会将整个XML文档加载到内存中,构建一个树形结构,每个节点代表XML文档的一部分。这种...

    android xml三种解析方式

    本篇将详细探讨Android中的三种XML解析方式:DOM解析、SAX解析和Pull解析。 1. DOM解析(Document Object Model) DOM解析器会将整个XML文档加载到内存中,构建一个树形结构,称为DOM树。这种解析方式的优点是能够...

    易语言 xml解析 易语言 xml解析 教程 带源码

    常见的解析方式有DOM(Document Object Model)和SAX(Simple API for XML)两种。DOM解析器会将整个XML文档加载到内存中,形成一个树形结构,适合小规模数据处理;SAX解析器则是事件驱动的,逐行读取XML,适合处理...

    js的XML解析器 可以解析XMl文件和XML字符串

    - **DOM解析**:JavaScript中最常见的XML解析方式是通过DOM解析器,它将XML文档转换为DOM树,每个元素、属性和文本节点都成为DOM树的一部分。例如,`DOMParser`对象可用于解析XML字符串: ```javascript var ...

    android xml解析方式

    总结来说,Android中的XML解析有DOM、SAX和Pull Parser三种主要方法。DOM适合小型文件,提供完整的文档结构;SAX适合大型文件,节省内存但需编写较多处理代码;而Pull Parser则结合了两者优点,既节省内存又提供了...

    XML解析工具类

    XML(eXtensible Markup Language)是一...总之,这个“XML解析工具类”是一个便捷的资源,提供了多种XML解析方式,适用于不同的场景和需求。不论你是初学者还是经验丰富的开发者,都能从中受益,更高效地处理XML数据。

    Android XML解析(DOM、PULL、SAX三种方式)

    Android系统提供了三种主要的XML解析方式:DOM(Document Object Model)、PULL(Pull Parser)和SAX(Simple API for XML)。每种方法都有其独特的特性和应用场景,下面将详细介绍这三种XML解析方式。 1. DOM解析...

    java xml解析工具类 java xml解析工具类

    java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析...

    xml四种解析方式

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。...在实际应用中,开发者应根据项目需求,权衡性能、易用性和资源消耗,选择最适合的XML解析方式。

    解析xml解析xml解析xml解析xml解析xml

    二、XML解析方式 1. DOM解析:Document Object Model(DOM)解析器将整个XML文档加载到内存中,形成一棵元素树,便于遍历和修改。这种方式适合小到中型的XML文件,因为内存消耗较大。 2. SAX解析:Simple API for ...

Global site tag (gtag.js) - Google Analytics