`
jiaqian0118
  • 浏览: 581 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

xml的简单应用---读与写

阅读更多

简单讲解:

XML  eXtensible Markup Language 可扩展标记语言
      作用:保存数据,用于数据的传递
      常用于JAVA中框架的配置文件
1、XML的语法(掌握)
    a、xml 文件的第一行为声明
     <?xml version="" encoding=""?>
     <?xml:声明当前文档为xml文档
     version:版本号,1.0,1.1
     encoding:编码
 b、xml文件中总会有一对根元素
 c、xml的标记必须有结尾
 d、xml元素必须有正确的嵌套
 e、实体
  <:&lt;
  >:&gt;
  &:&amp;
 f、CDATA区:存储带有特殊字符的文本数据
  <![CDATA[
  ......
  ]]>
 g、注释
 h、xml标记名区分大小写,属性值必须使用""或'',
    属性通常需要给属性赋值
   
 满足xml文件语法的要求xml文件,称为格式良好的xml文件
 
 xml文档的解析器:浏览器,myeclipse,xml spy
  
2、DTD(Schema)(了解) 
   Document Type Definition
   作用:限制xml文件的结构
  
   编写DTD,可以在xml文件内部,也可以定义单独的
   DTD文件
  
   引入:DTD
   a、引入一定范围内的DTD
   <!DOCTYPE 根元素 SYSTEM URL>
   b、引入一个公共的DTD
   <!DOCTYPE 根元素 PUBLIC "名字" URL>
  
   dtd,xml需求:
   根元素:struts
   struts子元素:package,global-results零个或多个
   package元素中有三个属性,name,extends,namespace
   global-results中有两个属性,name,type
  
   package子元素:action,零个或多个
   action中三个属性:name(必须有),class(必须有),method
  
   action子元素:result,零个或多个
   result中有两个属性:name(必须有),type  
   <!ELEMENT struts .....>
   .........
   <!ATTLIST..... >
  
3、JAVA 解析XML(掌握)
 a、解析XML,获取数据
 b、java中的数据写入到XML文件中
 
 JAVA中提供两种解析方式
 DOM 解析  xml中的dom  java
 SAX 解析  
 jdom/dom4j

实例代码:

TestDom4jWrite.java

package com.tarena.tts;

import java.io.FileOutputStream;

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

public class TestDom4jWrite {
 public static void main(String[] args) throws Exception {
  // 创建一个空白的Document
  Document doc = DocumentHelper.createDocument();
  Element root = doc.addElement("books");
  for (int i = 0; i < 1000; i++) {
   Element book = root.addElement("book");
   book.addElement("name").setText("Name" + i);
   book.addElement("price").setText((int) (Math.random() * 100) + "");
  }

XMLWriter writer = new XMLWriter(new FileOutputStream(
    "d:/books.xml"));
  writer.write(doc);
  writer.close();
 }
}

TestDom4jRead.java

package com.tarena.tts;

import java.io.FileInputStream;
import java.util.List;

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

public class TestDom4jRead {
  public static void main(String[] args) throws Exception {
    // SAXReader 用于读取XML文档
    SAXReader reader = new SAXReader();
    // Document 用于封装整个XML文档
    Document doc = reader.read(new FileInputStream("d:/books.xml"));
    // Element 用于封装元素
    Element root = doc.getRootElement();

//System.out.println(root.getName());
    // List list = root.elements();
    List<Element> bookList = root.elements("book");
    for (Element book : bookList) {
      Element name = (Element)book.elements("name").get(0);
      System.out.println(name.getText());
    }

}
}
TestSAX.java

package com.tarena.tts;

import java.io.FileInputStream;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.AttributeList;
import org.xml.sax.HandlerBase;
import org.xml.sax.SAXException;

public class TestSAX {
  public static void main(String[] args) throws Exception {
    SAXParserFactory factory = SAXParserFactory.newInstance();
    SAXParser parser = factory.newSAXParser();
    parser.parse(new FileInputStream("d:/books.xml"), new MyHandler());

}

}

class MyHandler extends HandlerBase {
  @Override
  public void startElement(String name, AttributeList attributes)
      throws SAXException {
    System.out.println(name + "开始");
  }

@Override
  public void endElement(String name) throws SAXException {
    System.out.println(name + "结束");
  }

}


TestXPath.java

package com.tarena.tts;

import java.io.FileInputStream;
import java.util.List;

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

public class TestXPath {
 public static void main(String[] args) throws Exception {
  /*
   * XPath...
   */
  SAXReader reader = new SAXReader();
  Document doc = reader.read(new FileInputStream("d:/books_new.xml"));

List<Element> list = doc
    .selectNodes("/books/book[price>=80 and price<90]/name");

for (Element name : list) {
   System.out.println(name.getText());
  }

}
}

运行环境需要Jar包:

dom4j-1.6.1.jar
      jaxen-1.1-beta-6.jar

分享到:
评论

相关推荐

    xml 学习例子+文档

    - 标签大小写敏感:XML标签和属性名是大小写敏感的,`&lt;Book&gt;`与`&lt;book&gt;`是不同的。 - 结束标签:除了空元素,每个开始标签都必须有一个相应的结束标签,如`&lt;element&gt;content&lt;/element&gt;`。 - 内容:元素可以包含...

    pugixml读写XML示例

    它以人类可读的形式定义了数据结构,并且被广泛应用于网络服务、配置文件和数据交换等领域。 pugixml库主要包含两个核心类:`xml_document`和`xml_node`。`xml_document`代表整个XML文档,而`xml_node`表示文档中的...

    java读写xml文件

    ### Java读写XML文件知识点详解 #### 一、概述 在Java编程中,对XML文件进行读取与写入是一项非常常见的任务。XML(可扩展标记语言)是一种用于标记数据...希望本文能帮助读者更好地理解和应用Java中的XML处理技术。

    xml读写项目总结

    首先,我们要关注的是“封装好的XML文件的读和写工程”。在编程中,通常我们会创建类或函数库来简化XML文件的操作。读取XML文件时,我们需要解析文件内容,提取所需元素和属性;写入XML文件则涉及构建XML结构并将其...

    Python读写XML文件实例

    在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,它的...通过`generate_xml.py`和`read_xml.py`这样的代码实例,开发者可以深入了解XML文件的读写操作,并在实际项目中灵活应用。

    XML应用开发(软件品牌)-1期 4.6 课堂实践-使用CSS文本属性显示XML文档-文本修饰属性.doc

    在XML应用开发中,使用CSS(层叠样式表)来显示XML文档是一种常见的做法,可以有效地控制和美化文档的布局与样式。在这个特定的课堂实践中,我们关注的是CSS的文本修饰属性,这些属性用于增强XML文档中文本的视觉...

    利用XMLBean轻轻松松读写XML

    XMLBean是基于JavaBeans的,它将XML文档映射到Java对象,使得XML数据的操作更加直观和简单。本文将深入探讨如何利用XMLBean进行XML的读写操作,以及其在实际应用中的优势。 首先,我们需要理解XMLBean的基本工作...

    halcon XML文件处理函数,halcon函数手册,Halcon

    在这个例子中,我们首先读取名为`config.xml`的文件,然后提取出名为`parameter`的节点值。接着,我们创建一个新的XML元素`new_config`,并添加一个子元素`parameter`,其值与之前读取的一致。最后,我们将这个新的...

    XML的读写(简单)

    XML(Extensible Markup Language)是一种用于标记数据的语言,它被广泛应用于存储和交换结构化数据。在IT领域,XML的读写是后端开发中常见的任务之一,特别是在处理配置文件、数据交换或与Web服务交互时。下面我们...

    商业编程-源码-简单的XML学生信息系统(注释清楚).zip

    这是一个关于商业编程领域的项目,主要涉及使用XML技术构建一个简单的学生信息系统。XML,全称Extensible Markup Language,是一种用于标记数据、使其结构化的语言,常用于数据交换和存储。在这个项目中,XML被用来...

    Visual basic 6.0 的读XML文件代码

    通过理解如何创建`DOMDocument`对象,加载XML文件,以及遍历和处理XML节点,开发者可以有效地在VB6应用程序中集成XML数据处理。同时,利用额外的资源和说明,可以进一步提升开发者的技能和效率。

    ios 写 xml and example

    XML文件是人类可读的,且具有自我描述性的,这使得它在跨平台和跨应用之间共享数据非常方便。本篇文章将详细介绍如何在iOS中编写XML文件,并提供一些实用的例子。 首先,我们要了解iOS中处理XML的基本方法。通常,...

    java四种xml读写demo

    本文将深入探讨Java中处理XML的四种常见方法:DOM(Document Object Model)、SAX(Simple API for XML)、StAX(Streaming API for XML)以及JAXB(Java Architecture for XML Binding)。我们将通过具体的代码示例...

    PBXML写读例子,接口程序用得着

    标题中的“PBXML写读例子”指的是在PowerBuilder(PB)环境中使用XML(eXtensible Markup Language)进行数据的读取和写入操作。XML是一种用于存储和传输数据的标准化格式,它允许数据在不同的应用程序和系统之间...

    无废话XML

    XML的出现,使得数据与显示样式分离,为互联网上的数据交换提供了标准化的方式。本资料“无废话XML”旨在帮助读者快速理解和掌握XML的基础知识和核心概念,从而在实际工作中高效地应用。 1. XML基础概念 - 标签...

    实验报告-大数据技术与应用-微课视频版-肖政宏-清华大学出版社.pdf

    3. **用户和文件权限管理**:包括如何创建、删除用户,设置用户组,以及如何调整文件的读、写、执行权限。 4. **Linux目录结构**:理解根目录 `/` 以及其下的各个子目录如 `/bin`、`/etc`、`/usr` 等的作用,同时...

    VC++保存与读取XML文件

    本文将深入探讨如何在VC++6.0环境下进行XML文件的保存与读取操作。 XML文件的结构清晰,易于人读,同时也方便机器解析。在VC++6.0中,我们可以利用微软提供的MSXML库(Microsoft XML Core Services)来处理XML。...

    C# XML入门经典——C#编程人员必备的XML技能(中文)

    7. **XML配置文件**:在C#应用中,常常使用XML配置文件来存储应用程序的设置。System.Configuration命名空间提供了用于读取和写入这些文件的类。 8. **XPath和XSLT**:XPath是查询XML文档的语言,用来选取节点。...

Global site tag (gtag.js) - Google Analytics