JS_XML

JavaScript 补充


createElement()  //创建一个元素


innerHTML,不是标准,XML不支持


appendChild()  //添加孩子节点    
    
createTextNode(); //创建文本节点

insertBefore();  //把一个节点在另一个之前插入

insertAfter();   //把一个节点在另一个之后插入

removeChild();    //移除节点

childNodes       //子节点数组,注意:空字符换行也算子节点

nextSibling    获取下一个兄弟节点


XML:可拓展性标记语言
   XMl的设计宗旨是传输数据

XML的应用:
    1,存储数据,即在没有数据库的情况下,是一个很好的替代品
       如果有数据库就用数据库
    2,传输数据,即服务器以XML的形式向android发送数据
    3,配置文件,通用配置XML文件,通知应用程序如何处理业务

XML的树形结构:倒状的树结构

XMl的语法
   1,文档声明
          声明版本号:version="1.0" , 编码方式:encoding="UTF-8"  声明要放在文档第一行
   2,元素
         XML中的元素是标签,标签通常用开始和结构组成
         中间是标签体,没有标签体称为空标签,不能交叉嵌套
         标签名称不能数字开头,不能带空格,在没有命名空间的情况下
         不能使用冒号,大小写敏感
    
   3,属性
           属性开始标签中,用双引或单引号定界
                 1.一个标签可以带多个属性
                  2.不同标签之间相同属性值不能相同
   4,注释
    <!-- 这是注释 -->
             注释不能嵌套使用, 写100行java代码,有30%左右的注释
    以下是java注释方式:
        单行注释://
        多行注释:/* */
        文档注释:/** */
   5.CDATA区
    原样输出
    <![CDATA[
        
    ]]>
   6,转义字符
           类似HTML转移符
   7,处理指令
           用CSS解析XML标签中的内容,如果你要用这个功能,标签就不要用中文
    建议:
      1,开发工具不能放在中文或中文空格符的目录下
      2,Tomcat这种Web服务器 不能有中文
      3,在开发工具中创建的工程名,尽量用英文,不要用中文和一些特殊符号。一般情况下不用 _ 开头

DTD简介:(Document Type Defined)
         如果没有约束文件的话,一个需求,可以写多个不同的XML文件 这就要写多个程序来解析,如果能有一个XML文件,只需要一个程序就行了为了达到这个目的,为XML量身定做一个约束文件,让XML符合这些条件。

XML和DTD关联有3中方式:
    1,使用内部DTD,即XML和DTD在同一个XML文件中
    
    2,外部本地DTD
       <!DOCTYPE bookstore SYSTEM "本地DTD的url"
        这样可以使XML和DTD分离
        合法的XML 浏览器正常显示XML的内容
        有效的XML:不光语法正确,且符合DTD的规则
    3,公共DTD

DTD语法:



<?xml version="1.0" encoding="utf-8"?>   
	<!DOCTYPE bookstore [
	   <!ELEMENT bookstore (book)>   <!--表示bookstore元素下,只允许book子元素出现一次 -->
	   <!ELEMENT book    (title,author,price)> <!--表示book标签要按顺序匹配子元素 -->
	   <!ELEMENT title    (#PCDATA) >      <!--表示price元素中只能书写可解析的文本,不可有子标签 -->
	]>

        <!-- ANY 代表里面内容不限    不用加()
	EMPTY 代表元素内容为空  不用加()
	DTD定义的<!ELEMENT>顺序无关系
        -->
         <bookstore>
		<book>JavaWeb</book>
		<author>哈哈</author>
		<price>100</price>
	</bookstore>

可用浏览器检测语法


 <!DOCTYPE bookstore[
	<!ELEMENT bookstore (book)>
	<!ELEMENT book      (title)> 
	<!ELEMENT title     (#PCDATA)>	
	<!ATTLIST book
		  id        ID                    #REQUIRED  <!--该属性必填 -->
		  isbn      IDREF                 #IMPLIES   <!--该属性可写可不写 -->
		  catalog   CDATA		  #FIXED  "JavaEE" <!-- 可写可不写,写要定值,大小写敏感 -->
		  location  (北京|上海|深圳|广州) "广州">   <!-- 默认值,可写可不写 -->
    ]>
    <bookstore>
	<book id="it2015" isbn="it2015" catelog="javaee" location="广州">
		<title>JavaWeb</title>
	</book>
    </bookstore>


属性类型分四种:
        ID:表示唯一的字符串,以字母开头
        IDREF:表示唯一值,要与另一个ID类型属性值相同
        CDATA:表示字符串类型
       (*|*|):枚举值

DTD实体:
       就是用一个变量去代替一个特殊的字符串
    
    内部实体:
          引用实体
               语法:
               <!ENTITY % key value>
          调用方式:&key;
          参数实体
                语法:
                 <!ENTITY % key value>
                  在DTD中调用:%key;



XML解析方式
   1,DOM解析
    当XML解析引擎解析完XML文件之后,会把XML文件中的各个部分封装成对象,通过对象获取XML文件的信息
    甚至改变XML文件的信息,这种做法叫做DOM解析
   2,SAX解析.....

















你可能感兴趣的:(JS_XML)