A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kuqi3712 中级黑马   /  2017-12-25 21:41  /  1497 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 kuqi3712 于 2017-12-25 21:44 编辑

XML:
        
        是用来描述数据的
        HTML用来显示数据
        XML的组成部分:
                文档申明        <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
                        文档申明只能在第一行
                元素:        开始标签和结束标签的元素名必须一致(子标签用来完善父标签的)
                                不包含标签体的标签<Student name="" age="" />
                                标签能嵌套使用但是不能交叉使用
                                只有一对根标签
                                
                                严格区分大小写
                                只能以字母或下划线开头 abc _abc
                                不能以xml开头
                                名称字符之间不能有空格或控制符
                                名称字符之间不能使用冒号:
                                标签名可以重复
                                元素中的属性不允许重复
                元素的属性
                                
                注释
                        <!--

                        -->
                        不能被解析
                        只能写到文档申明的上面
                        不能嵌套注释
                        
                        如果在XML中要使用中文就必须使用包含中文的编码
                        
                CDATA: Character Data
                         <![CDATA[
                         内容
                         ]]>
                        
                特殊字符 设置成普通文本
                        <AAA>
                        
               
                处理命令
                        必须以<?作为开头 以?>作为结尾
        XML的约束:
                为了规范XML的书写,可以规范标签的名称,顺序,次数,属性以及属性的值
                DTD:文档类型定义
                        <!DOCTYPE 书架 SYSTEM "book.dtd" >
                在DTD文档中使用<!ELEMENT 元素名 使用规则> 来申明一个约束
                                                例如<!ELEMENT 书 (书+)>表示有一个书的根标签并且有多个书的子标签
                标签体的规则        
                        EMPTY 空
                        ANY 任意类型
                        A,B,C规定子标签的顺序
                        A|B表示AB任选其一
                        +至少要有一次
                        *可有可无  可以一次或多次
                        ?可有可无  只能有一次
                ATTLIST 可以申明 属性
                <!ATTLIST 原素名
                        属性名1 属性值类型 设置说明
                        属性名2 属性值类型 设置说明
                >
               
                属性值类型:
                CDATA 表示属性的取值为普通的文本字符
                ENUMERATED(DTD没有):表示枚举,只能从枚举中任选其一
                ID:表示属性的取值不能重复
                设置说明:
                #REQUIRED:表述该属性必须出现
                #IMPLIED:表示可有可无
                #FIXED:固定的 #FIXED"固定值"
                直接值:表示属性的取值为该默认值
               
                DTD定义属性实例:
                <!ATTLIST 商品
                                  类别 CDATA#REQUIRED
                                  颜色 CDATA#IMPLIED
                >
               
                <商品 类别="服装" 颜色="黄色"/>
               
                DTD示例2:
                <!DOCTYPE 购物篮[
                        <!ELEMENT 购物篮(肉+)>
                        <!ELEMENT 肉 EMPTY>
                        <!ATTLIST 肉 品种(鸡肉|牛肉|猪肉)"鸡肉">(括号里面的是枚举)
               
                ]>
               
                <购物篮>
                        <肉 品种="猪肉">
                        <肉 品种="牛肉">
                        <肉/>(没有给品种 是鸡肉)
                </购物篮>

XML Schame(XSD 模式文档):
                        由标签和属性的约束文档(Schame可以看出类 xml可以看成对象)
                        
               
               
XML的解析方式:               
        DOM:将整棵树一口气加载到内存当中,可以非常方便的操作任意标签和属性
        当整棵树很大的时候会出现内存溢出的问题
        SAX:Simple API for XML
                节点 标签 属性 文本 甚至是换行都称之为节点
                一个节点一个节点开始解析
                先从根节点开始进行解析
        如何使用java?
                JAXP:sun公司提供的
                Dom4j(Dom for java):开源组织提供的
                        Document        
                                Element getRootElement()获取根元素对象(根标签)
                        Element
                                List elements() 获取所有的子元素
                                List elements (String name) 根据指定名称获取相应的所有的子元素
                                Element element(String name) 根据指定的元素名称来获取子元素的对象
                                String elementText(String name)根据指定的元素名称来获取子元素中的文本
                                String getText();获取当前元素对象的文本
                                String getName();获取当前元素标签名称
                                void setText(String text)设置当前对象的文本
                                String attributeValue(String name)根据指定的属性名称获取其对应的值
                                addAttribute(String name,String value);根据指定的属性名称添加或者修改其对应的值
                                addElement();添加元素
                                删除自己无法删 必须找上一级 element 用getParent()方法,再调用remove()方法
                        DocumentHelper
                                createElement();增加标签
                                
                Log4j(log for java):开源组织提供的

6 个回复

倒序浏览
继续努力
回复 使用道具 举报
一看就是认真听了课的
回复 使用道具 举报

继续加油哟~~~每天都保持这样的吸收
回复 使用道具 举报
温故而知新   加油哦   继续努力
回复 使用道具 举报
温故而知新   加油哦   继续努力
回复 使用道具 举报

总结很不错哟~继续加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马