XML 简介及用法详解
XML 是一种用于存储和传输数据的与软件和硬件无关的工具。
什么是XML?
XML代表eXtensible Markup Language(可扩展标记语言)。XML是一种与HTML非常相似的标记语言。XML被设计用于存储和传输数据。XML被设计成具有自我描述性。XML不执行任何操作,也许有点难理解,但XML不执行任何操作。
XML示例
这是一张存储为XML的给Tove的Jani的便签:
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
上面的XML相当自我描述:
- 它包含了发件人信息
- 它包含了收件人信息
- 它有一个标题
- 它有一个消息正文
但是,上面的XML仍然不执行任何操作。XML只是用标记包装的信息。
必须有人编写一段软件来发送、接收、存储或显示它:
Note
To: Tove
From: Jani
Reminder
Don't forget me this weekend!
XML和HTML的区别
XML和HTML是出于不同目的而设计的:
- XML被设计用于携带数据 - 专注于数据是什么
- HTML被设计用于显示数据 - 专注于数据的呈现方式
XML标签不像HTML标签那样是预定义的。XML语言没有预定义的标签。上面示例中的标签(如<to>和<from>)在任何XML标准中都未定义。这些标签是XML文档的作者“创造”的。
HTML使用预定义标签,如<p>、<h1>、<table>等。使用XML,作者必须定义标签和文档结构。
XML是可扩展的
大多数XML应用程序即使添加(或删除)新数据也能正常工作。
想象一个应用程序,设计用于显示note.xml的原始版本(<to> <from> <heading> <body>)。然后想象一个具有添加的<date>和<hour>元素以及删除<heading>的新版本的note.xml。
XML构造的方式使得旧版本的应用程序仍然可以工作:
<note>
<date>2015-09-01</date>
<hour>08:30</hour>
<to>Tove</to>
<from>Jani</from>
<body>Don't forget me this weekend!</body>
</note>
旧版本
Note
To: Tove
From: Jani
Reminder
Don't forget me this weekend!
新版本
Note
To: Tove
From: Jani
Date: 2015-09-01 08:30
Don't forget me this weekend!
XML简化事务
- XML简化数据共享
- XML简化数据传输
- XML简化平台更改
- XML简化数据可用性
许多计算机系统包含以不兼容格式存储的数据。在不兼容的系统(或升级的系统)之间交换数据对于Web开发人员来说是一项耗时的任务。必须转换大量数据,并且通常会丢失不兼容的数据。
XML以纯文本格式存储数据。这提供了一种与软件和硬件无关的存储、传输和共享数据的方式。
XML还使得扩展或升级到新的操作系统、新的应用程序或新的浏览器变得更容易,而不会丢失数据。
使用XML,数据可以供各种“阅读机器”使用,如人类、计算机、语音机器、新闻源等。
XML的用途
XML在Web开发的许多方面都得到了应用。
XML分离数据与演示
XML通常用于将数据与演示分离。XML不包含有关如何显示的任何信息。相同的XML数据可以在许多不同的演示情境中使用。因此,使用XML,数据和演示之间存在完全的分离。
XML通常与HTML搭配使用
在许多HTML应用程序中,XML用于存储或传输数据,而HTML用于格式化和显示相同的数据。
XML分离数据与HTML
在HTML中显示数据时,当数据发生变化时不应该修改HTML文件。使用XML,数据可以存储在单独的XML文件中。通过几行JavaScript代码,您可以读取一个XML文件并更新任何HTML页面的数据内容。
Books.xml示例:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
事务数据
存在成千上万种XML格式,用于描述不同行业的日常数据交易:
- 股票和股份
- 金融交易
- 医疗数据
- 数学数据
- 科学测量
- 新闻信息
- 天气服务
示例 XML
XMLNews是用于交换新闻和其他信息的规范。使用标准使得新闻制作者和新闻消费者更容易在不同的硬件、软件和编程语言之间产生、接收和存档任何类型的新闻信息。
一个示例XMLNews文档:
<?xml version="1.0" encoding="UTF-8"?>
<nitf>
<head>
<title>Colombia Earthquake</title>
</head>
<body>
<headline>
<hl1>143 Dead in Colombia Earthquake</hl1>
</headline>
<byline>
<bytag>By Jared Kotler, Associated Press Writer</bytag>
</byline>
<dateline>
<location>Bogota, Colombia</location>
<date>Monday January 25 1999 7:28 ET</date>
</dateline>
</body>
</nitf>
示例 XML 天气服务
来自美国国家海洋和大气管理局(NOAA)的XML国家气象服务:
<?xml version="1.0" encoding="UTF-8"?>
<current_observation>
<credit>NOAA's National Weather Service</credit>
<credit_URL>http://weather.gov/</credit_URL>
<image>
<url>http://weather.gov/images/xml_logo.gif</url>
<title>NOAA's National Weather Service</title>
<link>http://weather.gov</link>
</image>
<location>New York/John F. Kennedy Intl Airport, NY</location>
<station_id>KJFK</station_id>
<latitude>40.66</latitude>
<longitude>-73.78</longitude>
<observation_time_rfc822>Mon, 11 Feb 2008 06:51:00 -0500 EST
</observation_time_rfc822>
<weather>A Few Clouds</weather>
<temp_f>11</temp_f>
<temp_c>-12</temp_c>
<relative_humidity>36</relative_humidity>
<wind_dir>West</wind_dir>
<wind_degrees>280</wind_degrees>
<wind_mph>18.4</wind_mph>
<wind_gust_mph>29</wind_gust_mph>
<pressure_mb>1023.6</pressure_mb>
<pressure_in>30.23</pressure_in>
<dewpoint_f>-11</dewpoint_f>
<dewpoint_c>-24</dewpoint_c>
<windchill_f>-7</windchill_f>
<windchill_c>-22</windchill_c>
<visibility_mi>10.00</visibility_mi>
<icon_url_base>http://weather.gov/weather/images/fcicons/</icon_url_base>
<icon_url_name>nfew.jpg</icon_url_name>
<disclaimer_url>http://weather.gov/disclaimer.html</disclaimer_url>
<copyright_url>http://weather.gov/disclaimer.html</copyright_url>
</current_observation>
XML树
XML文档形成了一棵树状结构,从“根”开始分支到“叶子”。
XML树结构

DOM节点树
一个XML文档可以被看作是一棵树,这被称为DOM(Document Object Model)节点树。DOM节点树以根节点为起点,分支到各个子节点,形成一个层级结构。
一个XML文档的示例
上图表示了XML中的图书:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
XML树结构
XML文档被形成为元素树。
XML树始于根元素,从根元素分支到子元素。
所有元素都可以有子元素(子元素):
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
术语父元素、子元素和兄弟元素用于描述元素之间的关系。
- 父元素有子元素。
- 子元素有父元素。
- 兄弟元素是在同一级别上的子元素(兄弟姐妹)。
所有元素都可以有文本内容(例如:Harry Potter)和属性(例如:category="cooking")。
自描述语法
XML使用了一种非常自描述的语法。
一个前导定义了XML版本和字符编码:
<?xml version="1.0" encoding="UTF-8"?>
下一行是文档的根元素:
<bookstore>
下一行开始了一个<book>元素:
<book category="cooking">
<book>元素有4个子元素:<title>、<author>、<year>、<price>。
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
下一行结束了<book>元素:
</book>
从这个例子中,您可以假设XML文档包含了有关书店中书籍的信息。
XML语法规则
XML的语法规则非常简单和逻辑。这些规则易于学习和使用。
XML文档必须有一个根元素
XML文档必须包含一个作为所有其他元素的父元素的根元素:
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
在这个例子中,<note> 是根元素:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
XML前导部分
这一行被称为XML前导部分:
<?xml version="1.0" encoding="UTF-8"?>
XML前导部分是可选的。如果存在,它必须在文档中首先出现。
所有XML元素必须有一个结束标签
在XML中,省略结束标签是非法的。所有元素必须有一个结束标签:
<p>This is a paragraph.</p>
<br />
XML标签区分大小写
XML标签是区分大小写的。标签<Letter>与标签<letter>是不同的。
开放和关闭标签必须使用相同的大小写
<message>This is correct</message>
“开放和关闭标签”通常被称为“开始和结束标签”。
XML元素必须嵌套正确
在XML中,所有元素必须在彼此之内正确嵌套:
<b><i>This text is bold and italic</i></b>
XML属性值必须始终用引号括起来
XML元素可以具有类似HTML中的名称/值对的属性。在XML中,属性值必须始终用引号括起来:
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>
实体引用
在XML中,一些字符具有特殊的含义。为了避免解释错误,需要使用实体引用:
<message>salary < 1000</message>
XML中的注释
在XML中编写注释的语法与HTML类似:
<!-- This is a comment -->
在XML中保留空白
XML不截断多个空白,保留所有空白字符。
XML将新行存储为LF
XML将新行存储为LF(Line Feed)。
格式良好的XML
符合上述语法规则的XML文档被称为“格式良好”的XML文档。
XML元素
一个XML文档包含XML元素。
什么是XML元素?
一个XML元素是从(包括)元素的开始标签到(包括)元素的结束标签的所有内容。
<price>29.99</price>
一个元素可以包含:
- 文本
- 属性
- 其他元素
- 或以上的混合
<bookstore>
<book category="children">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
在上面的例子中:
<title>、<author>、<year>和<price>具有文本内容,因为它们包含文本(如29.99)。<bookstore>和<book>具有元素内容,因为它们包含元素。<book>具有一个属性(category="children")。
空XML元素
没有内容的元素被称为空元素。
在XML中,可以这样表示一个空元素:
<element></element>
也可以使用所谓的自闭合标签:
<element />
这两种形式在XML软件(阅读器、解析器、浏览器)中产生相同的结果。
空元素可以有属性。
XML命名规则
XML元素必须遵循以下命名规则:
- 元素名称区分大小写
- 元素名称必须以字母或下划线开头
- 元素名称不能以字母xml(或XML、Xml等)开头
- 元素名称可以包含字母、数字、连字符、下划线和句点
- 元素名称不能包含空格
除了xml,任何名称都可以使用,没有保留的单词(除了xml)。
最佳命名实践
- 创建描述性的名称,比如:
<person>、<firstname>、<lastname>。 - 创建简短和简单的名称,比如:
<book_title>而不是<the_title_of_the_book>。
命名约定
一些常用的XML元素命名约定:
- 小写:
<firstname>(所有字母都小写) - 大写:
<FIRSTNAME>(所有字母都大写) - 蛇形命名:
<first_name>(下划线分隔单词,常用于SQL数据库) - 帕斯卡命名:
<FirstName>(每个单词的首字母大写,C程序员常用) - 骆驼命名:
<firstName>(每个单词的首字母大写,除了第一个,JavaScript中常用)
提示! 选择您的命名风格,并始终保持一致!
XML元素是可扩展的
XML元素可以扩展以携带更多的信息。
看下面的XML示例:
<note>
<to>Tove</to>
<from>Jani</from>
<body>Don't forget me this weekend!</body>
</note>
假设我们创建了一个应用程序,从XML文档中提取<to>、<from>和<body>元素以生成以下输出:
MESSAGE
To: Tove
From: Jani
Don't forget me this weekend!
想象一下,XML文档的作者向其添加了一些额外的信息:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
应用程序是否应该崩溃或中断?
不应该。应用程序应该仍然能够在XML文档中找到<to>、<from>和<body>元素,并生成相同的输出。
这是XML的优点之一。它可以在不破坏应用程序的情况下进行扩展。
XML属性
XML元素可以有属性,就像HTML一样。
XML属性必须用引号括起来
属性值必须始终用引号括起来。可以使用单引号或双引号。
对于一个人的性别,<person>元素可以这样写:
<person gender="female">
或者像这样:
<person gender='female'>
如果属性值本身包含双引号,可以使用单引号,就像在这个例子中:
<gangster name='George "Shotgun" Ziegler'>
或者可以使用字符实体:
<gangster name="George "Shotgun" Ziegler">
XML元素 vs 属性
在XML中,没有规定何时使用属性或何时使用元素的规则。
我最喜欢的方式
以下三个XML文档包含完全相同的信息:
在第一个例子中使用了一个date属性:
<note date="2008-01-10">
<to>Tove</to>
<from>Jani</from>
</note>
在第二个例子中使用了一个<date>元素:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
</note>
在第三个例子中使用了一个扩展的<date>元素:(这是我最喜欢的)
<note>
<date>
<year>2008</year>
<month>01</month>
<day>10</day>
</date>
<to>Tove</to>
<from>Jani</from>
</note>
避免使用XML属性?
在使用属性时要考虑的一些事项有:
- 属性不能包含多个值(元素可以)
- 属性不能包含树结构(元素可以)
- 属性不容易扩展(以适应将来的更改)
不要陷入这种情况:
<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
用于元数据的XML属性
有时会为元素分配ID引用。这些ID可以用来识别XML元素,方式与HTML中的id属性类似。以下是此示例:
<messages>
<note id="501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note id="502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not</body>
</note>
</messages>
上述id属性用于标识不同的注释。它不是注释本身的一部分。
我想在这里说的是,元数据(关于数据的数据)应该存储为属性,而数据本身应该存储为元素。
XML命名空间
XML命名空间提供了一种避免元素名称冲突的方法。
名称冲突
在XML中,元素名称由开发人员定义。这通常导致在尝试混合来自不同XML应用程序的XML文档时发生冲突。
这个XML包含HTML表信息:
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
这个XML包含有关桌子(家具的一部分)的信息:
<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
如果将这些XML片段相加,将会出现名称冲突。两者都包含一个<table>元素,但这些元素具有不同的内容和含义。
用户或XML应用程序将不知道如何处理这些差异。
使用前缀解决名称冲突
在XML中,可以通过使用名称前缀轻松避免名称冲突。
这个XML包含有关HTML表和家具的信息:
<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>
在上面的例子中,不会发生冲突,因为这两个<table>元素具有不同的名称。
XML命名空间 - xmlns属性
在XML中使用前缀时,必须为前缀定义一个命名空间。可以通过元素的开始标记中的xmlns属性来定义命名空间。
命名空间声明具有以下语法:xmlns:prefix="URI"。
<root>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
在上面的例子中:
- 第一个
<table>元素中的xmlns属性为h:前缀提供了一个合格的命名空间。 - 第二个
<table>元素中的xmlns属性为f:前缀提供了一个合格的命名空间。
当为元素定义命名空间时,所有具有相同前缀的子元素都与相同的命名空间相关联。
命名空间也可以在XML根元素中声明:
<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>
</root>
注意: 解析器不使用命名空间URI查找信息。使用URI的目的是为命名空间提供一个唯一的名称。然而,公司通常将命名空间用作指向包含命名空间信息的网页的指针。
统一资源标识符(URI)
统一资源标识符(URI)是一个字符串,用于标识互联网资源。最常见的URI是统一资源定位符(URL),用于标识互联网域地址。另一种不太常见的URI类型是统一资源名称(URN)。
默认命名空间
为元素定义默认命名空间可以避免在所有子元素中使用前缀。它具有以下语法:xmlns="namespaceURI"。
这个XML包含HTML表信息:
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
这个XML包含有关家具的信息:
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
实际使用中的命名空间
XSLT是一种可用于将XML文档转换为其他格式的语言。
下面的XML文档是用于将XML转换为HTML的文档。
命名空间"http://www.w3.org/1999/XSL/Transform"标识HTML文档中的XSLT元素:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr>
<th style="text-align:left">Title</th>
<th style="text-align:left">Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎点赞、收藏、关注
XML 简介及用法详解的更多相关文章
- (转)Xargs用法详解
Xargs用法详解 原文:http://czmmiao.iteye.com/blog/1949225 简介之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以 ...
- Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)
Android XML shape 标签使用详解 一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...
- @RequestMapping 用法详解之地址映射
@RequestMapping 用法详解之地址映射 引言: 前段时间项目中用到了RESTful模式来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没 ...
- linux管道命令grep命令参数及用法详解---附使用案例|grep
功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...
- c++中vector的用法详解
c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...
- Class.forName()用法详解
Class.forName()用法详解 标签: classjvmjdbc数据库documentationjava 2012-03-29 09:39 40414人阅读 评论(8) 收藏 举报 分类: ...
- CentOS7下Firewall防火墙配置用法详解
官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...
- jQuery 事件用法详解
jQuery 事件用法详解 目录 简介 实现原理 事件操作 绑定事件 解除事件 触发事件 事件委托 事件操作进阶 阻止默认事件 阻止事件传播 阻止事件向后执行 命名空间 自定义事件 事件队列 jque ...
- linux sed命令参数及用法详解
linux sed命令参数及用法详解 http://blog.csdn.net/namecyf/article/details/7336308 1. Sed简介 sed 是一种在线编辑器,它一次处理一 ...
- 1:CSS中一些@规则的用法小结 2: @media用法详解
第一篇文章:@用法小结 第二篇文章:@media用法 第一篇文章:@用法小结 这篇文章主要介绍了CSS中一些@规则的用法小结,是CSS入门学习中的基础知识,需要的朋友可以参考下 at-rule ...
随机推荐
- 使用俩个链接在一起的容器运行wordpress
# 问题,如何分离mysql和wordpress,使它们每个都单独运行一个容器. # 解决办法:运行时通过--link选项使它们链接在一起 --link <container_name>: ...
- Advanced .Net Debugging 2:CLR基础
一.简介 这是2024新年后我的第一篇文章,也是我的<Advanced .Net Debugging>这个系列的第二篇文章.这篇文章告诉我们为了进行有效的程序调试,我们需要掌握哪些知识.言 ...
- 深入解析ASP.NET Core MVC应用的模块化设计[上篇]
ASP.NET Core MVC的"模块化"设计使我们可以构成应用的基本单元Controller定义在任意的模块(程序集)中,并在运行时动态加载和卸载.这种为"飞行中的飞 ...
- Java 常用类 String类与其他结构之间的转换-----String 与 char[]之间的转换
1 /* 2 String 与 char[]之间的转换 3 4 String----> char[]:调用String的toCharArray() 5 char[] ---->String ...
- Java 从键盘上输入"year"“month”和“day”,要求通过程序输出 输入的日期为第几年的第几天
1 /** 2 * 编写程序: 3 * 从键盘上输入"year""month"和"day",要求通过程序输出 4 * 输入的日期为第几年的第 ...
- elementPlus使用el-icon
按着文档来撒 yarn add @element-plus/icons-vue main.ts import * as ElementIcons from '@element-plus/icons-v ...
- 为aws中国配置docker镜像加速
在AWS中国,docker镜像基本无法拉取,更换国内镜像是必须的. 修改docker配置文件 sudo vi /etc/sysconfig/docker 找到OPTIONS参数,在后面加上" ...
- day08-Axios
Axios 1.基本说明 Axios是一个基于promise的网络请求库,作用于node.js和浏览器中.它是 isomorphic 的 (即同一套代码可以运行在浏览器和node.js中).在服务端它 ...
- 06_Qt开发基础
.pro文件的配置 跨平台配置 之前我们分别在Windows.Mac环境的Qt项目中集成了FFmpeg. 可以发现在.pro文件的配置中,FFmpeg库在Mac.Windows上的位置是有所差异的.这 ...
- 《TencentNCNN系列》 之bin文件(网络参数文件)格式分析
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...