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");
}
}
分享到:
相关推荐
XML解析方式是一种高效且灵活的方法,能够帮助我们实现这一目标。本篇文章将详细探讨如何利用Java和XML解析来自动化创建Word文档。 首先,我们需要了解XML的结构。XML(Extensible Markup Language)是一种标记语言...
### C#中的XML解析方式 #### 1. XML Text Reader(流式解析) - **简介**:在.NET框架中,`XMLTextReader`是一种高效的流式XML解析器,适用于处理大型XML文档或当只需要读取文档的部分内容时。 - **特点**: - **...
xml解析方式包括w3c dom,sax,xpp,stax,vtd方式,其实还有jdom和xmlevent这样才够全面
它提供了一种高效但功能有限的XML解析方式,不支持修改XML文档,适用于大文件或网络流: ```csharp using (XmlReader reader = XmlReader.Create("example.xml")) { while (reader.Read()) { if (reader....
总结,这三种XML解析方式各有优劣。DOM适合小规模、快速访问的数据;PULL和SAX适合大规模、低内存占用的情况,其中PULL更易于使用,而SAX对资源的利用更高效。在实际开发中,应根据项目需求和XML文件大小选择合适的...
总结来说,XML解析方式有DOM、SAX和Pull解析,其中XPP3作为Pull解析的一种实现,以其高效和灵活的特性在处理XML时具有优势。通过集成XPath,XPP3进一步提升了查询和处理XML文档的能力。在开发过程中,根据项目需求和...
Pull解析是Android特有的XML解析方式,它类似于SAX解析,也是事件驱动的,但提供了更简洁的API。Pull解析器非常适合在有限的内存环境中处理XML,例如在Android设备上。以下是一个基本的Pull解析示例: ```java ...
### Java常用的四种XML解析方式详解 #### 一、DOM(Document Object Model)解析 DOM是一种树状结构的解析方式,由W3C推荐标准。它将XML文档转换为树形结构,每个节点都是一个对象,可以对这些对象进行读取、修改等...
XML(eXtensible Markup Language)是一种用于存储和传输数据的...在实际开发中,根据项目需求和资源限制选择合适的XML解析方式至关重要。理解SAX和DOM的特性可以帮助我们更好地处理XML数据,提高程序的效率和稳定性。
对于XML的处理,Android提供了三种主要的解析方式:DOM(Document Object Model)、SAX(Simple API for XML)和PULL(Pull Parser)。下面将详细介绍这三种解析方式及其特点。 1. DOM解析: DOM解析器会将整个XML...
在iOS开发中,有两种主要的XML解析方式:DOM(Document Object Model)和SAX(Simple API for XML)。 1. DOM解析: DOM解析器会将整个XML文档加载到内存中,构建一个树形结构,每个节点代表XML文档的一部分。这种...
本篇将详细探讨Android中的三种XML解析方式:DOM解析、SAX解析和Pull解析。 1. DOM解析(Document Object Model) DOM解析器会将整个XML文档加载到内存中,构建一个树形结构,称为DOM树。这种解析方式的优点是能够...
常见的解析方式有DOM(Document Object Model)和SAX(Simple API for XML)两种。DOM解析器会将整个XML文档加载到内存中,形成一个树形结构,适合小规模数据处理;SAX解析器则是事件驱动的,逐行读取XML,适合处理...
- **DOM解析**:JavaScript中最常见的XML解析方式是通过DOM解析器,它将XML文档转换为DOM树,每个元素、属性和文本节点都成为DOM树的一部分。例如,`DOMParser`对象可用于解析XML字符串: ```javascript var ...
总结来说,Android中的XML解析有DOM、SAX和Pull Parser三种主要方法。DOM适合小型文件,提供完整的文档结构;SAX适合大型文件,节省内存但需编写较多处理代码;而Pull Parser则结合了两者优点,既节省内存又提供了...
XML(eXtensible Markup Language)是一...总之,这个“XML解析工具类”是一个便捷的资源,提供了多种XML解析方式,适用于不同的场景和需求。不论你是初学者还是经验丰富的开发者,都能从中受益,更高效地处理XML数据。
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解析...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。...在实际应用中,开发者应根据项目需求,权衡性能、易用性和资源消耗,选择最适合的XML解析方式。
二、XML解析方式 1. DOM解析:Document Object Model(DOM)解析器将整个XML文档加载到内存中,形成一棵元素树,便于遍历和修改。这种方式适合小到中型的XML文件,因为内存消耗较大。 2. SAX解析:Simple API for ...