Web-XML

1 篇文章 0 订阅

XML


XML简介

什么是XMl

  • XML: eXtensible Markup Language(可扩展标记语言)。
  • 由W3C组织发布,目前推荐遵守的是W3C组织于2000年发布的XML1.0规范。
  • XML是一种标记语言,很类似HTML。
  • XML的设计宗旨是传输数据,而非显示数据。
  • XML的使命,就是以一个统一的格式,组织有关系的数据。为不同平台下的应用程序服务,独立于软件和硬件的信息传输工具。
  • XML仅仅是纯文本。有能力处理纯文本的软件都可以处理XML。不过,能够读懂XML的应用程序可以有针对性地处理XML的标签。

XML 与 HTML

  • XML不是HTML的替代。
  • XML和HTML为不同的目的而设计:HTML旨在显示信息,而XML旨在传输信息
    • 传统中,XML被设计为传输和存储数据,其焦点是数据的内容。
    • HTML被设计用来显示数据,其焦点是数据的外观。
  • 关于内部标签:
    • XML没有任何预定义标签,均为自定义标签。
    • HTML文档只使用在HTML标准中定义过的标签。
  • 树形结构:
    • XML文档形成—种树形结构,这点上与HTML是相同的
  • 语法要求:
    • XML相较于HTML,语法更加严格。
    • HTML不区分大小写,XML严格区分大小写。

XML用途

配置文件

  • JavaWeb中的web.xml,以及后面涉及到的框架都会有很多的配置文件
  • C3PO中的c3pO-config.xml
  • JDK安装后的目录文件

数据交换格式

  • Ajax
  • WebService

数据存储

  • 保存关系型数据

移动端android页面

XML基本语法

CDATA区

  • 当XML文档中需要写一些程序代码、SQL语句或其他不希望XML解析器进行解析的内容时,就可以写在CDATA区中
  • XML解析器会将CDATA区中的内容原封不动的输出
  • CDATA区的定义格式:<![CDATA[...]]>

注释

  • XML文件中的注释采用:<!–注释–>

创建students.xml

<?xml version="1.0" encoding="utf-8" ?>
<students>
  <student id = "001">
    <name>zhangsan</name>
    <age>20</age>
  </student>
  <student id = "002">
    <name>lisi</name>
    <age>18</age>
  </student>
  <student id = "003">
    <name>wangwu</name>
    <age>19</age>
  </student>
</students>

XML解析

dom4j

  • dom4j是一个简单、灵活的开放源代码的库。
  • Dom4j是由早期开发JDOM的人分离出来而后独立开发的。与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性。
  • dom4j是一个非常优秀的Java XMLAPI,具有性能优异、功能强大和极易使用的特点。现在很多软件都采用dom4j,例如Hibernate。
  • 使用dom4j开发,需导入dom4j相应的jar包dom4j-1.6.1.jar。所以使用第一步:导包!
    在这里插入图片描述- Dom4j解析关键步骤
package com.z.demo;

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

import java.util.List;

public class ParseXml {
  public static void main(String[] args) {
    try {
      //创建解析器
      SAXReader reader = new SAXReader();
      //使用解析器read()方法,将xml文件解析成Document对象
      Document document = reader.read("wab_xml/students.xml");
      //通过文档获取根元素
      Element rootElement = document.getRootElement();
      //通过根元素获取所有子元素
      List<Element> elements = rootElement.elements();
      for (Element element:elements) {
        String id = element.attributeValue("id");
        System.out.println("id = " + id);
        String name = element.elementText("name");
        System.out.println("name = " + name);
        String age = element.elementText("age");
        System.out.println("age = " + age);
      }
    } catch (DocumentException e) {
      e.printStackTrace();
    }
  }
}

XPath

简介

  • XPath是在XML文档中查找信息的语言,类似于jQuery选择器。

  • XPath通过元素和属性进行查找,简化了Dom4j查找节点的过程,是W3C组织发布的标准。

  • 使用XPath必须在导入dom4j.jar包之外,再导入jaxen-1.1-beta-6.jar包
    在这里插入图片描述

  • 具体语法:XPath教程(菜鸟教程)

使用

package com.z.demo;

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


public class XPathParseXml {
  public static void main(String[] args) {
    try {
      //创建解析器
      SAXReader reader = new SAXReader();
      //使用解析器read()方法,将xml文件解析成Document对象
      Document document = reader.read("day04_xml/students.xml");
      //xpath解析
      Element element = (Element)document.selectSingleNode("/students/student[@id = '003']");
      String id = element.attributeValue("id");
      System.out.println("id = " + id);
      String name = element.elementText("name");
      System.out.println("name = " + name);
      String age = element.elementText("age");
      System.out.println("age = " + age);
    } catch (DocumentException e) {
      e.printStackTrace();
    }
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值