XML语法

2.1文档声明:一个格式良好的XML必须包含也只能包含一个文档声明,并且文档声明必须出现在XML文档第一行,其前不能有其他任何内容。

2.1.1最简单的写法:<?XML version="1.0" ?>其中的version代表当前XML所遵循的规范版本。
2.1.2使用encoding属性指定文档所使用的字符集编码:<?XML version="1.0" encoding="gb2312" ?>
注意:encoding属性指定的编码集和XML真正使用的编码应该一致,如果不一致就会有乱码问题。
encoding属性默认值为老外喜欢的iso8859-1
2.1.3使用standalone属性指定当前XML文档是否是一个独立文档:<?XML version="1.0" standalone="no" ?>,standalone默认值为yes表示是一个独立文档。
注意:很多的解析器会忽略这个属性,但是学习知识要按标准去学,所以这个属性也要掌握。
2.2元素
2.2.1元素分为开始标签和结束标签,在开始标签和结束标签之间的文本称为标签体,如果一个标签即不含标签体也不包含其他标签,那这样的标签可以把开始标签和结束标签进行合并,这样的标签叫自闭标签。
<a>xxxxx</a>   <a/>
2.2.2一个元素也可以包含若干子元素,但是要注意所有的标签都要进行合理嵌套。
2.2.3一个格式良好的XML文档应该具有并且只能有一个跟标签,其他标签都应该是这个跟标签的子孙标签。
2.2.4元素的命名规范:
区分大小写,例如,<P>和<p>是两个不同的标记。
不能以数字或标点符号或"_"开头。
不能以XML(或XML、或Xml 等)开头。
不能包含空格。
名称中间不能包含冒号(:)
2.3属性
一个元素可以包含多个属性,属性的值要用单引号或双引号括起来。如果属性的之中包含双引号,就要用单引号了。
属性的命名规范,参照元素的命名规范。
2.4注释
<!--这是一段注释-->
注意:注释不能出现在文档声明之前。实验:把注释写到文档声明之前,用ie打开是没问题,但是用chrome打开是报错的。这就看出来了不同的解析器有不同的处理,我们学习的时候还是按标准去学。
注释不能嵌套注释
2.5CDATA区、转义字符
都可以用来转义特殊字符。
2.5.1CDATA区<![CDATA[这是要转义的内容]]>
被CDATA区扩起来的内容,将会被浏览器当作文本来处理。
2.5.2转义字符
& --> &amp;
< --> &lt;
> --> &gt;
" --> &quot;
' --> &apos;
2.5.3CDATA区和转义字符的区别
(1)CDATA区可以成段的进行转义,而转义字符一次只能转义一个字符
(2)CDATA区转义的字符可以保存数据本来的格式只是通知解析器按文本去处理。转义字符改变了数据本身的内容,利用其他字符替代了转义字符。请思考,如果要转义的内容是一段js程序的话,如果用转义字符合适不合适?
2.6处理指令:一段指令通知解析器以何种方式解析XML
<?XML-stylesheet type="text/css" href="1.css" ?>指定解析器使用1.css去渲染当前的XML数据
其实文档声明就是一个最常见的处理指令。




<?xml version="1.0" encoding="UTF-8"?>


<?xmlversion="1.0" encoding="GB2312"?>

<中国>

  <北京>

  <海淀></海淀>

  <丰台></丰台>

  </北京>

  <河北>

  <唐山></唐山>

  <石家庄></石家庄>

  </河北>

  <山东>

  <济南></济南>

  <青岛></青岛>

  </山东>

  。。。。

</中国>

实例


### 学习 XML 语法 #### 定义与特性 XML(可扩展标记语言)是一种用于传输和存储数据的简单格式。它具有良好的可扩展性,能够实现内容与形式的有效分离,并严格遵循语法要求[^3]。 #### 正规 XML 文档的要求 为了使 XML 文档成为格式正规文档,需满足特定条件: - **声明语句**:每份 XML 文件应以 `<?xml version="1.0" encoding="UTF-8"?>` 开始来指定版本号以及字符编码方式。 - **唯一根元素**:整个文档必须包含在一个唯一的顶级标签之内;此标签被称为根节点。 - **大小写敏感**:所有的标签名称都是区分大小写的。 - **属性值加引号**:当定义带有属性的标签时,这些属性应当被双引号包围起来表示其值。 - **闭合所有标签**:对于每一个开启状态下的起始标签 `<tag>` 都应该存在相应的结束标签 `</tag>` 或者采用自封闭的形式如 `<br />`. - **正确嵌套子元素**:内部层次结构中的各个组件要按照正确的顺序排列并相互匹配[^2]. #### 实际应用案例 在实际开发过程中,可以利用专门工具或者库函数解析处理 XML 数据流。例如,在浏览器环境中可以通过内置 API 将 XML 转换成易于操作的数据模型——DOM对象树形结构,进而借助 JavaScript 进行各种交互逻辑的设计[^1]。 此外,一些新兴技术也采用了基于 XML 的解决方案,比如 xml-agent 提供了一个创新性的框架让开发者构建支持 XML 协议交流的人工智能代理程序,适用于多种场合下生成标准化的消息体或是执行复杂的业务流程控制任务[^4]。 ```javascript // 使用JavaScript获取XML文件的内容 function loadXMLDoc(filename){ var xmlDoc; if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else{// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET",filename,false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML; document.getElementById("myDiv").innerHTML= xmlDoc.getElementsByTagName("TITLE")[0].childNodes[0].nodeValue; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值