zoukankan      html  css  js  c++  java
  • java 中的xml操作

    XML

    全称为Extensible Markup Language 可扩展标记语言。一般作为配置文件,可在网络中传输。

    和html的区别是,它的语法规定更加严格,同时,xml中的标签都是自定义的,而html中的标签是预定义的。

    xml一般用来存储数据,而html一般用来展示数据。

    xml文档的第一行必须为形如<?xml 属性列表 ?>的文档声明。必须要有一个根标签,标签必须正确关闭。同时和html不同xml的标签区分大小写。属性值必须使用单双引号包裹。

    <?xml version="1.0" encoding="utf-8" standalone="no" ?>
    

    一般xml文档声明格式如上,但是standalone一般不写,该属性的含义是是否依赖其他文件,取值只有yes/no。version属性表示采取的xml版本,常用的是1.0版本,encoding表示此文档内容采用的编码格式。

    当需要原样展示数据时,可以将内容放到CDATA区中。

    约束

    约束定义了xml的书写规则。

    通常有两种定义约束的方式:

    1. DTD 该方式使用较为简单
    2. Schema 该方式使用较为复杂,当约束更加详细

    使用DTD约束有两种方式,一种时将约束规则定义在xml文档中。

    另外一种时将DTD规则定义在外部的DTD文件中。

    1. 使用本地DTD规则 <!DOCTYPE 根标签名 SYSTEM "dtd文件位置">

    2. 使用网络DTD规则 <!DOCTYPE 根标签名 PUBLIC "dtd文件名" "dtd文件URL">

    操作xml文档

    操作xml文档,有两种行为:

    1. 解析 也就是将xml数据读入到内存

    2. 写入 也就是修改xml数据

    xml解析方式

    xml文档有两种解析方式:

    1. DOM 方式 将标记语言一次性加载新内存,在内存中形成一颗DOM树

      ​ 优点:操作方便,可以对文档进行crud的所有操作

      ​ 缺点:消耗内存

    2. SAX 逐行读取,基于事件驱动

      ​ 优点:内存消耗小

      ​ 缺点:只能读取,不能增删改

    xml常见解析器

    xml常见解析器有如下几种:

    1. JAXP:SUN公司提供的解析器,支持dom和sax两种实现 劣质

    2. DOM4J:

    3. jsoup:HTML解析器,解析xml无问题 推荐

    4. PULL:Android系统内置解析器,sax方式

    Jsoup

    本来是用来解析html文档的解析器,但是同为标记语言,解析xml也没有问题。

    使用parse静态方法解析xml文档,返回一个Document对象。

    Document对象

    Document 文档对象,代表内存中的dom树 继承自Element。

    Elements 对象

    继承自ArrayList<Element> 类,相当于Element对象的容器。通常在选择某些节点是返回该对象。

    Element 对象

    该对象相当于一个标签节点。是一个较为基础的对象,Document类同样继承自该类。

    常用函数函数有:

    ​ getElementsByTag 根据标签名称返回Elements

    ​ getElementsByAttribute 根据属性名称获取元素对象

    ​ getElementsByAttributeValue 根据属性值获取元素对象

    ​ attr 获取属性值

    ​ text 获取标签内的文本内容(包含子标签内的文本内容)

    ​ html 获取html/xml内容

    Node对象

    Node对象,为Element的基类

    快捷选择方式

    select CSS选择器方式

    XPath xml路径语言,用于在xml中查询信息。

    使用jsoupXpath需要额外的jar包

  • 相关阅读:
    struct与class的区别
    C#锐利体验第五讲 构造器与析构器(转)
    Sort Table
    WinXP(NTFS分区下)Vista系统文件的删除方法
    关于上海居住证我们不得不说的实情!(转)
    让你眼花缭乱的JS代码~~
    ASP的URL重写技术(IIS的ISAPI)[转]
    JS实现从照片中裁切自已的肖像
    C#锐利体验第二讲 C#语言基础介绍(转)
    装箱和拆箱
  • 原文地址:https://www.cnblogs.com/freesfu/p/13855218.html
Copyright © 2011-2022 走看看