XML 简介
XML 被设计用来传输和存储数据。类似于JSON。
XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准
XML 被设计用来结构化、存储以及传输信息。(没有格式双方很难知道信息的结构内容)
实例:
<?xml version="1.0" encoding="utf-8"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
实例解释:
第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。
描述文档的根元素
<note>//根元素的开始 ** </note> //根元素的结尾
4个子元素
<to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body>
就这样XML文档会形成一种树结构,如下:
<?xml version="1.0" encoding="utf-8"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body> <A>George</A> <B>John</B> <C>Reminder</C> </body> </note>
所有 XML 元素都须有关闭标签
<p>This is a paragraph //错 <p>This is a paragraph</p> //对
XML 标签对大小写敏感
<Message>这是错误的。</message> //错 <message>这是正确的。</message> //对
XML 必须正确地嵌套
<b><i>This text is bold and italic</b></i> //错 <b><i>This text is bold and italic</i></b> //对
XML 的属性值须加引号
<note date=08/08/2008> //错 <to>George</to> <from>John</from> </note> <note date="08/08/2008"> //对 <to>George</to> <from>John</from> </note>
实体引用:就是特殊字符的转意。
< a4a5eb8deae7006cdfb279380f4c02ed 大于
& & 和号
' ' 单引号
" " 引号
<message>if salary < 1000 then</message>
想要的:
<message>if salary < 1000 then</message>
XML 中的注释
<!-- This is a comment -->
在 XML 中,空格会被保留
HTML 会把多个连续的空格字符裁减(合并)为一个:
HTML:Hello my name is David. 输出:Hello my name is David.
在 XML 中,文档中的空格不会被删节。
XML 元素
开始标签直到(且包括)结束标签的部分。如:
<from>John</from>
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。如:
<book category="CHILDREN"> //category(属性) <title>Harry Potter</title> //book的子元素,这个子元素只有文本内容 <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
XML 命名规则
XML 元素必须遵循以下命名规则:
名称可以含字母、数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字符 “xml”(或者 XML、Xml)开始
名称不能包含空格
XML 元素 vs. 属性
<person sex="female"> //属性 <firstname>Anna</firstname> <lastname>Smith</lastname> </person> <person> <sex>female</sex> //元素 <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用子元素,在 XML 中,
您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。
属性无法包含多重的值(元素可以)
属性无法描述树结构(元素可以)
属性不易扩展(为未来的变化)
属性难以阅读和维护
XML 命名空间(XML Namespaces)
XML 命名空间提供避免元素命名冲突的方法。
这个 XML 文档携带着某个表格中的信息:
<table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
这个 XML 文档携带有关桌子的信息(一件家具):
<table> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
由于两个文档都包含带有不同内容和定义的 f5d188ed2c074f8b944552db028f98a1 元素,就会发生命名冲突。
使用前缀来避免命名冲突
<h:table> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> <f:table> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table>
使用命名空间(Namespaces)
<h:table xmlns:h="http://www.w3.org/TR/html4/"> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table>
此 XML 文档携带着有关一件家具的信息:
<f:table xmlns:f="http://www.w3school.com.cn/furniture"> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table>
默认的命名空间(Default Namespaces)
为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。
<table xmlns="http://www.w3.org/TR/html4/"> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
此 XML 文档携带着有关一件家具的信息:
<table xmlns="http://www.w3school.com.cn/furniture"> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
命名空间是就近原则的
<?xml version="1.0" encoding="utf-8"?> <root xmlns="dotnet" xmlns:w="wpf"> <!-- xmlns: dotnet --> <a>data in a</a> //默认的命名空间 <!-- xmlns: dotnet --> <w:b>data in b</w:b> //w命名空间 <!-- xmlns: wpf --> <c xmlns="silverlight"> <!-- xmlns: silverlight --> <w:d> <!-- xmlns: wpf --> <e>data in e</e> <!-- xmlns: silverlight --> //就近原则 </w:d> </c> </root>
CDATA
术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。(就是里面的数据不进行XML解析)
CDATA 部分由 "ff20aeb6fc4b1a1ae8bac3b4d50b8e2a" 结束:
<script> <![CDATA[ //开始 function matchwo(a,b) { if (a < b && a < 0) then { return 1; } else { return 0; } } ]]> //结束 </script>
以上是详细介绍XML原理代码实例的详细内容。更多信息请关注PHP中文网其他相关文章!

RSS和XML在现代Web中依然重要。1.RSS用于发布和分发内容,用户可通过RSS阅读器订阅并获取更新。2.XML作为标记语言,支持数据存储和交换,RSS文件基于XML。

RSS可以实现多媒体内容嵌入、条件订阅、以及性能和安全性优化。1)通过标签嵌入多媒体内容,如音频和视频。2)使用XML命名空间实现条件订阅,允许订阅者根据特定条件筛选内容。3)通过CDATA节和XMLSchema优化RSSFeed的性能和安全性,确保稳定性和符合标准。

RSS是一种基于XML的格式,用于发布常更新的数据。作为Web开发者,理解RSS能提升内容聚合和自动化更新能力。通过学习RSS结构、解析和生成方法,你将能自信地处理RSSfeeds,优化Web开发技能。

RSS选择XML而不是JSON是因为:1)XML的结构化和验证能力优于JSON,适合RSS复杂数据结构的需求;2)XML当时有广泛的工具支持;3)RSS早期版本基于XML,已成标准。

RSS是一种基于XML的格式,用于订阅和阅读频繁更新的内容。它的工作原理包括生成和消费两部分,使用RSS阅读器可以高效获取信息。

RSS文档的核心结构包括XML标签和属性,具体解析和生成步骤如下:1.读取XML文件,处理和标签。2.提取、、等标签信息。3.处理自定义标签和属性,确保版本兼容性。4.使用缓存和异步处理优化性能,确保代码可读性。

JSON、XML和RSS的主要区别在于结构和用途:1.JSON适用于简单数据交换,结构简洁,易于解析;2.XML适合复杂数据结构,结构严谨但解析复杂;3.RSS基于XML,用于内容发布,标准化但用途有限。

XML/RSS订阅源的处理涉及解析和优化,常见问题包括格式错误、编码问题和元素缺失。解决方案包括:1.使用XML验证工具检查格式错误;2.确保编码一致性并使用chardet库检测编码;3.处理元素缺失时使用默认值或跳过该元素;4.使用高效解析器如lxml和缓存解析结果以优化性能;5.注意数据一致性和安全性,防止XML注入攻击。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

SublimeText3汉化版
中文版,非常好用

SublimeText3 Linux新版
SublimeText3 Linux最新版