zoukankan      html  css  js  c++  java
  • XML

      XML:eXtensible Markup Language 可扩展标记语言

      XML与Html比较

      XML Html
    设计宗旨 存储与传输数据 显示数据
    标签 自定义 预定义
    语法 严格 松散

     

      XML乱码相关问题

      原因:存储XML的文件的编码格式与XML文件第一行中声明的<?xml version="1.0" encoding="编码" ?>不相符,导致XML错误。

      分析:存储XML的文件的编码格式是XML文件的实际编码类型,而文件声明的encoding是告诉打开它的应用程序,要用我指定的编码方式进行解码,故出错。

      解决方法:encoding改为文件的编码,或者改变文件的编码即可。

      疑问:你可能想如果我不指定的encoding呢?

      答案:如果未指定encoding,打开XML的应用程序将会两种情况打开:

          1 按照文件的编码打开(最好不过了)

          2 按照应用程序的默认编码打开,比如有些浏览器按照默认UTF-8打开。

      启示:XML文件必须加上encoding,这样万无一失。

     

    XML约束

      目前,XML约束分为2类,dtd,和schema。

      dtd:缺点不能准确限制数据类型。
        dtd分类:
          * 内部dtd:在xml内部定义dtd
          * 外部dtd:在外部文件中定义dtd
          * 本地dtd文件:<!DOCTYPE students SYSTEM "student.dtd">
          * 网络dtd文件:<!DOCTYPE students PUBLIC "名称空间" "student.dtd">

      dtd详情请见菜鸟教程:http://www.runoob.com/dtd/dtd-tutorial.html
      schema
        导入xsd约束文档:
          1、编写根标签
          2、引入实例名称空间 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          3、引入名称空间 xsi:schemaLocation="http://www.itcast.cn/xml       student.xsd"
          4、引入默认的名称空间

      schema详情请见菜鸟教程:http://www.runoob.com/schema/schema-tutorial.html

      看到这里,不知道做Java EE的同学认出了,这是JavaEE项目中web.xml开头那段总是TMD看不懂的代码。那里采用的就是schema约束。

    XML解析

      xml解析思想:
        * DOM解析:将文档加载进内存,形成一颗dom树(document对象),将文档的各个组成部分封装为一些对象。
          * 优点:因为,在内存中会形成dom树,可以对dom树进行增删改查。
          * 缺点:dom树非常占内存,解析速度慢。

        * SAX解析:逐行读取,基于事件驱动
          * 优点:不占内存,速度快
          * 缺点:只能读取,不能回写

      xml常用的解析器:
        * DOM4J
          1.导入jar包 dom4j.jar,最新为dom4j-1.6.1.jar
          2.创建解析器
              SAXReader reader = new SAXReader();
          3.解析xml 获得document对象
              Document document = reader.read(url);

        * XPATH:专门用于查询
          * 定义了一种规则。
          * 使用的方法:
              * selectSingleNode():
              * selectNodes():
          使用步骤:
            1、注意:要导包dom4j-1.6.1.jar和jaxen-1.1-beta-6.jar两个包。
            2、创建解析器
                SAXReader reader = new SAXReader();
            3、解析xml 获得document对象
                Document document = reader.read(url);

     

     

     

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    P3382 【模板】三分法
    1269: [AHOI2006]文本编辑器editor
    1500: [NOI2005]维修数列
    4196: [Noi2015]软件包管理器
    django 表单系统 之 forms.ModelForm
    django 表单系统 之 forms.Form
    django ORM 批量操作:批量插入bulk_create
    django 多数据库时 ORM语句 选择数据库
    django 配置 多数据库
    django模板复用 extends,block,include
  • 原文地址:https://www.cnblogs.com/kingofkai/p/5850214.html
Copyright © 2011-2022 走看看