XML基础知识

1.XML基础
2.XML语法
3.XML DOM
4.Javascript解析XML文档

1.XML基础
eXtensible Markup Language 可扩展标记语言
XML是一种平台无关的用于携带和传送数据的方法。

~~~~xml主要是描述数据是什么,一般没有数据如何呈现的信息,有别于HTML,HTML可以说是xml的一种实现。(注:xhtml才是xml的一种实现)

xml文档可以用IE 文本编辑器或者专门的XML编辑器浏览

~~~xml不同平台的数据交换,但不适合大批量数据的存储与处理(有别于数据库)

多个xml文档的元素之间还可以定义主外键关系

xml优点:
~~~通用性,可扩展性,自我描述性

xml的用途
~~作为一种通用的数据格式,存储和交换数据;用作配置文件

2.XML语法

XML文档声明
XML处理指令
XML元素(元素 元素属性 元素内容)

<?xml version="1.0" encoding="utf-8" ?>  <!--xml文档声明-->
<?xml-stylesheet type="text/xsl" href="mystyle.xsl" ?><!--xml处理指令 可选-->
<stu-roster> <!--xml元素-->
  <student>
    <id>A001</id>
    <name>dingdang</name>
  </student>
  <student>
     <id>A009</id>
     <name>kitty</name>
  <student>
</stu-roster>

~~~XML文档声明 必须包含version属性,其他属性如下 顺序不能打乱。
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

XML处理指令
为处理XML文档的应用程序提供提示信息
XML解析器会把处理指令原封不动的传给处理程序,由处理应用程序按照指令的提示信息进行处理

使用格式显示XML文档
用CSS定义外观样式或者用XSL定义外观 Xml Stylesheet Language 后者功能更强大

XML元素: 起始标识 结束标记 属性 内容
<title>雾都孤儿</title>

XML所有元素都必须有结束标记。

标签名区分大小写,开始标签和结束标签要匹配

元素内容:
元素包含子元素
元素直接包含内容
元素没有任何内容  空标记

根元素:没有嵌套在其他元素内的元素 最高层元素
文档内所有元素都是根元素的子孙元素。
根元素要有且仅有一个

元素内容
CDATA Character DATA 字符数据
指定不想被解析程序解析的一片原始数据区。

PCDATA Parsed Character DATA 由XML解析器解析的字符数据

CDATA例子:
<![CDATA[...anything can go here...]]>
CDATA区内不能出现字符"]]>"
可以在CDATA区内嵌入其他语言的代码,如javascript等。

PCDATA区 PCDATA 需要被XML解析器解析的字符数据
直接写在起始标记和结束标记之间的内容。

字符转义
有些特殊字符不能出现在PCDATA区内,需要用字符实体替代,如 < &等
&lt <
&gt >
&amp & ampersand
&apo ‘ apostrophe
&quot "

XML注释 同HTML <!-- comment -->

xml文档声明必须是第一行代码,注释不能放在XML文档声明之前。

3.XML DOM

DOM 是所有浏览器都支持的一种标准,它定义了一组与浏览器和编程语言都无关的标准对象,利用这些对象模型可以方便地操作XML文档

DOM是最为流行的XML文档访问方式。

DOM的优缺点:一般使用DOM时,把所有XML文档信息都存放在内存,遍历容易,但是内存占用高,解析较慢

DOM树形结构 XML文档的每个成分都看作是一个节点。

节点类型:
Document  根节点 9
DocumentType  DTD引用的对象的表现形式 10
Element 元素节点 1
Attr 属性节点 2
Text 文本节点 3
CDataSection 字符数据节点 4
Comment 注释节点 8

DOM树形结构中,节点间的关系:parent child sibling

4.javascript解析XML文档
XML DOM的属性和方法
javascript操纵XML DOM

现在大多数的浏览器都支持XML

IE和Mozilla的浏览器都通过javascript提供对XML的支持

javascript处理XML文档的基础是DOM树形结构
在javascript中有关于DOM的API,在这些API中定义了DOM的属性和方法。
利用javascript中的DOM API可以实现对XML文档的访问、创建、删除,修改等操作。
用javascript处理XML文档是ajax技术的核心

javascript处理XML文档的工作原理:
1.创建XML DOM对象
2.载入XML文档的内容
3.调用javascript关于XML DOM的属性和方法进行处理。

创建XML DOM对象 IE和非IE浏览器创建方法不同
IE用ActiveX插件中的 MSXML库实现对XML的支持
var xmlDom=new ActiveXObject(aVersion);
aVersion的取值可以是 Microsoft.XMLDOM
MSXML2.DOMDocument
MSXML2.DOMDocument3.0
MSXML2.DOMDocument4.0
MSXML2.DOMDocument5.0
MSXML2.DOMDocument6.0

如:
var xmlDom=new ActiveXObject("MSXML2.DOMDocument6.0");

IE支持2中载入XML文档的方法:load()和loadXML()
var xmlDoc=xmlDom.load(url); //默认采用异步的方式载入XML文档数据

//同步方式载入XML文档数据
xmlDom.async=false;
var xmlDoc=xmlDom.load(url);

var xmlDoc=xmlDom.loadXML(sXml); //sXML为XML格式的字符串

Firefox下获得XML DOM对象
在Firefox浏览器中需要调用document.inplementation对象的createDocument()方法创建一个XML DOM对象。
var xmlDom=document.inplementation.createDocument("","",null);

Firefox浏览器只支持load()方法载入XML文档。
var xmlDoc=xmlDOM.load("test.xml");

获取XML DOM对象--跨浏览器兼容的方法,使用zXML库实现跨浏览器对XML的支持。

var xmlDom=zXMLDom.createDocument();

zXML支持2中方法载入XML文档,同IE. xmlDom.load(),xmlDom.loadXML();

>>>>操作XML文档<<<<<
节点的属性:
nodeType
nodeName
nodeValue
attributes  元素节点的属性

节点导航
firstChild
lastChild
childNodes
previousSibling 前一个兄弟节点
nextSibling 下一个兄弟节点

documentElement 指向XML文档的根节点,只有Document对象有该属性。Document.documentElement
owerDocument  指向这个节点所属文档。

XML DOM的方法:
创建节点:
createElement(tagName)  创建标签名为tagName的元素。
createTexNode(text)  创建文本节点
createAttribute(attrname)  创建一个属性节点 属性未赋值

createDocumentFragment() 创建文档碎片节点
createProcessingInstruction(target,data);

读取节点:
getElementByTagName(tagname)  //返回标签名为tagname的nodelist
getAttribute(attrname)  //获取当前节点中 属性名为attrname的属性值

setAttribute(attrname,attrvalue) 设置属性节点的值
setAttributeNode(attrNode) 某节点属性节点列表的尾部添加一个属性节点。

添加删除节点的方法:
appendChild(node);
removeChild(node)
replaceChild(newNode,oldNode)
insertBefore(newNode,oldNode);

XML基础知识,布布扣,bubuko.com

时间: 2024-10-23 17:54:24

XML基础知识的相关文章

JavaEE XML 基础知识

JavaEE XML 基础知识 @author ixenos 1.    XML开头都需要一个声明 <?和?>表明这是一个处理指令 <?xml version=”1.0” encoding=”UTF-8” ?> 2.    <book id=”1.0”> </book> 等同于: <book> <id>1.0</id> </book> 3.    XML格式能够表达层次结构(树),并且重复的元素不会被曲解 4.

xml基础知识的学习

xml基础知识学习: xml的特点:xml与操作系统.编程语言的开发平台都无关 实现不同系统之间的数据交互 xml:可扩展标记语言 html: xml结构:   <?xml version ="1.0" encoding ="UTF-8" ?> --xml文件的声明encoding 不写默认为UTF-8 <根元素>     <子元素1 属性="value">         <元素>值</元素

.net学习笔记---xml基础知识

一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基础: <?xml version="1.0" encoding="utf-8" ?> <books ISBN="9787544238212"> <title>xml学习笔记</title> <pr

XML基础知识--&gt;Spring配置

XML的特殊字符 XML中共有5个特殊的字符,分别是:&<>“’.如果配置文件中的注入值包括这些特殊字符,就需要进行特别处理.有两种解决方法:其一,采用本例中的<![CDATA[ ]]>特殊标签,将包含特殊字符的字符串封装起来:其二,使用XML转义序列表示这些特殊的字符,这5个特殊字符所对应XML转义序列在表4-2中说明: Spring在进行XML配置时,如果属性值包含了一个XML的特殊符号,因此我们特意在属性值外添加了一个<![CDATA[ ]]>的XML特殊

XML基础知识学习

概念: XML 指可扩展标记语言 XML 是一种标记语言.非常类似 HTML ,文本文件. XML 的设计宗旨是数据传输,而非显示数据 .存储和传输复杂的关系模型数据 XML 标签没有被提前定义 使用约束的XML文档设计具有自我描写叙述性. XML 是 W3C 的推荐标准 XML语法: 一个XML文件分为例如以下几部分内容: 文档声明 <?xml version="1.0"  ecoding="utf-8"> 元素:有開始有结束 属性 凝视 CDATA区

XML基础知识(七)

1.xml有哪些解析技术?区别是什么? 答:有DOM,SAX,STAX等 DOM:处理大型文件时其性能下降的非常厉害.这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式.它顺序读取XML文件,不需要一次全部装载整个文件.当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访

学习Spring必学的Java基础知识

[1] Java反射知识-->Spring IoC :http://www.iteye.com/topic/1123081 [2] Java动态代理-->Spring AOP :http://www.iteye.com/topic/1123293 [3] 属性编辑器,即PropertyEditor-->Spring IoC:http://www.iteye.com/topic/1123628 [4] XML基础知识-->Spring配置:http://www.iteye.com/t

学习Spring必学的Java基础知识(1)----反射

引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓“登高必自卑,涉远必自迩”.以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系列分别介绍这些Java基础知识,希望对大家有所帮助.): [1] Java反射知识-->Spring IoC :http://www.iteye.com/topic/1123081 [2] Java动态代理-->Spring AOP :http://www.iteye.com/topic/1123293 [3] 属性

学习Spring必学的Java基础知识(7)----事务基础知识

引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓“登高必自卑,涉远必自迩”.以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系列分别介绍这些Java基础知识,希望对大家有所帮助.): [1] Java反射知识-->Spring IoC :http://www.iteye.com/topic/1123081 [2] Java动态代理-->Spring AOP :http://www.iteye.com/topic/1123293 [3] 属性