zoukankan      html  css  js  c++  java
  • XML

      1 XML
      2   * extensible Markup Languae :可扩展标记型语言
      3     ** 标记型语言:html是标记型语言
      4         - 也是使用标签来操作
      5     ** 可扩展:
      6         - html里面的标签是固定的,每个标签都有特定的含义<h1><br/><hr/>
      7         - 标签可以自定义,可以写中文的标签<person></persn> <猫></猫>
      8     * xml用途
      9         ** html适用于显示数据,xml也可以显示数据(不是主要功能)
     10         ** xml只要功能,为了存储数据
     11 
     12     * xml是w3c组织发布的技术
     13     * xml有两个版本:1.0    1.1 
     14      -使用1.0版本:(1.1版本不能向下兼容)。
     15 * xml的应用
     16     * 不同的系统之间传输
     17         ** qq之间数据传输
     18     * 用来表示生活中有关系的数据
     19     * 经常用在来配置文件
     20 
     21 * xml语法
     22     (1)xml的文档声明
     23         * 创建文件,后缀为.xml
     24         * 如果写xml 第一步必须要有一个文档声明(写了文档声明之后,表示写xml文件)
     25             ** <?xml version="1.0" encoding="GBK"?>
     26             ** 文档声明必须写 第一行 第一列
     27         * 属性
     28             - version: xml的版本1.0(使用1.0)
     29             - encoding:xml编码 gbk utf-8 iso8859-1(不包含中文)
     30             - standalone: 是否需要依赖其他文件 yes/no
     31             - xml的中文乱码 计算机默认保存时gbk 自己定义时utf-8就会乱码 应该在保存时改掉计算机默认为设置的编码
     32     (2)定义元素(标签)
     33     (3)定义属性
     34     (4)特殊字符
     35     (5)注释
     36     (6)CDATA区
     37     (7)PI指令
     38 5*xml的元素定义:
     39     ** 标签定义:
     40         ** 有开始有结束<person></person>
     41         ** 可以再内部结束<person />
     42         ** 标签可以嵌套,必须要合理:
     43             ** 合理嵌套<bb><aa></aa></bb>
     44         ** 只能有一个根标签,其他的都是子标签
     45         ** 空格和内容都会解析:不能写空格
     46         ** xml标签可以使中文
     47 
     48         ** xml中标签的名称规则
     49             (1)xml代码区分大小写
     50             (2)xml的标签不能以xml开头
     51             (3)xml不能以数字下划线开头
     52             (4)xml不能包含空格和冒号
     53 
     54 * xml照片那个特殊字符
     55     ** 小于号:&lt
     56     ** 大于号:&gt
     57     ** 双引号:&quot
     58     ** 单引号:&apos
     59     ** & :&amp
     60 
     61 * CDATA区:
     62     ** 可以解决多个字符都需要专一的操作 
     63     ** 把这些内容放在CDATA中不需要转义;
     64     ** 写法:就是把特殊字符当成文本内容显示出来
     65         ** <![CDATA][内容]]>
     66 
     67 * PI指令(处理指令) 只对应为标签起做用
     68     ** 可以再xml中设置效果
     69     ** 导入css写法: <?xml-stylesheet type="text/css" href="路径" ?>
     70 
     71 * xml约束:
     72     **  一个dad约束 一个schema约束
     73         *** dtd快速入门
     74             * 创建文件 后缀: .dtd
     75             * 步骤;
     76                * 有多少元素 就在dtd中创建几个<!ELEMENT>
     77                * 判断元素是简单元素还是复杂元素
     78                 - 简单元素:没有子元素
     79                     <!ELEMENT  元素名称(#PCDATA) >
     80                 - 复杂元素:有子元素的元素 
     81                     <!ELEMENT  元素名称(子元素名称) >
     82              * 将dtd引入xml中方法
     83                 * <!DOCTYPE 元素名称 SYSTEM "dtd路径">
     84     ** dad三种引入方式;
     85         (1) 引入外部dtd文件
     86             <!DOCTYPE 元素名称 SYSTEM "路径">
     87         (2) 内不直接写;
     88             <!DOCTYPE 元素名称 [
     89                 - 简单元素:没有子元素
     90                     <!ELEMENT  元素名称(#PCDATA) >
     91                 - 复杂元素:有子元素的元素 
     92                     <!ELEMENT  元素名称(子元素名称) >
     93     
     94             ]>
     95         (3) 使用外部dtd文件(网络上的)
     96             <!DOCTYPE 根元素 PUBLIC "DTD名称" "dtd文档路径URL">
     97             在后面学到的 框架中 struts2中学到 使用配置文件用
     98 * 使用dtd定义元素
     99     *简单元素:没有子元素的元素
    100         <!ELEMENT name (#PCDATA)>
    101         *** (#PCDATA);约束那么是字符串类型
    102         *** EMTY: 元素为空 (没有内容)
    103         *** ANY:任意
    104     * 复杂元素:
    105     <!ELEMENT person (name,age)>
    106         -子元素只能出现一次
    107         ** 表示元素出现的次数;
    108             +: 表示一次或多次
    109             ?: 表示零次或一次
    110             *: 表示出现任意次数 (有没有都行)
    111         **子元素之间用 , 号隔开,表示元素出现的顺序.
    112         **子元素之间用 | 号隔开,表示元素出现的顺序.
    113 
    114 * 使用dtd定义属性
    115     * 语法: <ATTLIST 元素名称
    116             属性名称 属性类型 属性的约束
    117         >
    118     * 属性类型
    119         - CDATA :字符串
    120             - <!ATTLIST birthday
    121                 ID1 CDATA #REQUIRED
    122             >
    123         - 枚举: 表示只能在一定的范围内出现值,但是只能每次出现其中一个.
    124             ** 红绿灯效果
    125             ** (aa|bb|cc)
    126             - <!ATTLIST age
    127                 ID2 (AA|BB|CC) #REQUIRED
    128             >
    129         ID :值只能是字母或者下划线开头
    130     * 属性的约束  <!ELEMENT  ><age  ID="DDD">20</age>
    131         - #REQUIRED ;表示必须有
    132         - #IMPLIED;表示可有可无
    133         - #FIXED :表示一个固定值, #FIXED "AAA"
    134             - 属性的值必须是设置的这个固定值
    135             - <!ATTLIST sex 
    136                 ID4 CDATA #FIXED "ABC"
    137             >
    138         - 直接值:
    139             * 不写属性,使用直接值
    140             * 写了属性,使用设置那个值
    141                 -<!ATTLIST school
    142                     ID5 CDATA "DDD"
    143                 >
    144     * 定义实体:
    145         * 语法: <!ENTITY 实体名称 "实体的值">
    146         ** 定义实体<!ENTITY TEST "HAHAHA">
    147         ** 使用实体 &实体名称; 比如: &TEXT;
    148 
    149         ** 特别注意:
    150             * 定义的实体需要写在内部的dtd里面
    151     
    152     * schema约束:
    153         ** dtd语法: <!ELEMENT 元素名称 约束>
    154         ** schema符合xml的语法,xml语句:
    155         ** 一个xml中可以有多个schema,多个schema使用名称空间来区分(类似于java中的包)
    156         ** dtd里面有PCDATA类型.但是schema里面可以支持更多的数据类型 
    157             *** 比如 年龄 只能是整数 在schema可以直接定义一个整数类型
    158             **语法更加复杂,所以schema目前不能替换dtd.
    159     * schema的快速入门
    160         *后缀名为 .xsd
    161         * 创建一个schema文件
    162             ** 根节点就是<schema>
    163         * 在schema文件中
    164             ** 属性 xmlns="http://www.w3.org/2001/XMLSchema"
    165                 - 表示当前xml问价是一个约束文件'
    166             ** targetNmaespace="http://www.itcast/cn/20151111"
    167                 - 使用schema约束文件,直接通过这个地址引入约束文件
    168             ** elementFormDefault="qualified"
    169         * 步骤:
    170             (1) 看xml中有多少元素
    171                 <element>
    172             (2) 看简单元素和复杂元素
    173                 - 复杂元素;
    174                     ** <complexType>
    175                         <sequence>
    176                             子元素
    177                         </sequence>
    178                        </complexType>
    179                 - 简单元素,卸载复杂元素的中间
    180                     <element name="person">
    181                         <complexType>
    182                             <sequence>
    183                                 <element name="name" type="string"></element>
    184                                 <element age="age" type="int"></element>
    185                             </sequence>
    186                           </complexType>
    187                       </element>
    188             (3) 在约束文件里面引入约束文件
    189                 <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    190                 xmlns="http://www.itcast.cn/20151111"
    191                 xis:schemaLocation="http://www.itcast.cn/20151111 1.xsd">
    192 
    193                 **解释:
    194                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    195                     - 表示xml是一个被约束的文件
    196                 xmlns="http://www.itcast.cn/20151111"
    197                     - 是约束文档里面targetNmaespace
    198                 xis:schemaLocation="http://www.itcast.cn/20151111 1.xsd"
    199                     - targetNmaespace+空格+约束文档的地址
    200             * schema复杂元素指示器
    201                 * <sequence>:表示元素的出现顺序
    202                 * <all> 元素只能出现一次
    203                 * maxOccurs="unbounded":表示元素的出现次数
    204                 * <any></any>:表示任意元素
    205             * 可以约束属性
    206                 * 写在复杂元素里面;
    207                 * 写在 <complexType>之前
    208                 --- 
    209                     <attribute name="id1" type="int" use="required">
    210                         -- name :属性名称
    211                         -- type: 属性类型 int string
    212                         --  use :属性是否必须出现 required
    213     
    214                         
    215 
    216 * XML解析简介(写java代码)***
    217     * xml是表机型文档
    218     * 就是使用dom解析表机型文档
    219         - 根据html的层级结构,在内存中分配一个树形结构.把html的标签,属性和文本都封装成对象.
    220         - document对象,element对象.属性对象.node节点对象;
    221     * xml的解析就是dom和sax方法
    222         * dom层级结构解析,在内存中分配一个树形结构,吧xml的标签,属性文本都会封装成对象.
    223             优点:可以增删改操作
    224             缺点:文件过大时会内存溢出
    225         * sax一行一行从上往下边读边解析:
    226             优点:不会内存溢出.
    227             缺点:不能增删改.
    228     ** 不同的公司对dom和sax技术用不同的解析器:
    229         - sun公司提供的是dom和sax解析器:  jaxp
    230         - dom4j组织,针对dom和sax解析器:   dom4j(经常用)
    231         - jdom组织,针对dom和sax解析器:    jdom
    232 
    233 
    234 * jaxp的api的查看;java代码 不能使用var了  使用的是w3才包
    235     ** jaxp是Javase的一部分
    236       ** jaxp解析器在jdk的javax.xml.parsers包里面
    237         ** 四个类; 分别是针对dom和sax解析使用类
    238         document:操作:
    239             查询:
    240                 步骤:
    241                     1.创建解析器工厂
    242                     2.根据解析器工厂创建解析器
    243                     3.解析xml,返回document
    244                     4.得到所有neam元素
    245                     5.使用返回集合里面的方法item(),下标获取具体元素
    246                         NodeList.item(i);集合下标i从0开始
    247                     6.得到具体的值,使用getTextContent方法
  • 相关阅读:
    POWERSHELL脚本执行权限
    tcp连接状态查看
    shutdown vs close
    tcp timestamps
    与TIME_WAIT相关的几个内核参数修改测试讨论结论
    添加 vip
    tcp nonblock connection rst
    tcp keepalive选项
    grep搜索文本
    protobuf 测试使用
  • 原文地址:https://www.cnblogs.com/czb2580/p/5878869.html
Copyright © 2011-2022 走看看