2019独角兽企业重金招聘Python工程师标准>>>
XML全称:Extensible Markup Language可扩展标记语言。
元素和标签的异同点:
1.相同点,看上去都是<xxx>和</xxx>的一对组合;
2.不同点,书写方式不同,标签一般是
<根标签>
<标签>
...
</标签>
</根标签>
而元素是:
<根标签>
<标签1>
<元素1>fklasdjfklj</元素1> #可以看出相对于标签,缩进都深一层
<元素2>fjasdklf</元素2>
...
</标签1>
<标签2>
...
</标签2>
</根标签>
3.逻辑表达含义不同,从上面代码看,元素1和元素2是属于标签1,标签1是根标签的子标签,标签1和标签2是兄弟关系。
4.标签可以拥有属性,而元素不具有,例如:
<根标签>
<标签1 属性1 = "某个值"> #这里一定要加双引号
<元素1>fklasdjfklj</元素1> #可以看出相对于标签,缩进都深一层
<元素2>fjasdklf</元素2>
...
</标签1>
</根标签>
一个xml文件的第一行其实不属于任何标签,它也没有对应的结束标签,例如:
<?xml version="1.0" encoding="ISO-8859-1"?> #这一行是XML声明,声明了该xml的版本和编码
而真正的标签则有开始和结束两者,必须共存,例如:
<label_name> #开始标签;
</label_name> #结束标签;
xml采用的树形结构,所有的标签都属于root标签,同级别的属于兄弟关系。
<root>
<label1>
<element>this is a text!</element>
</label1>
</root>
XML的优势就是可扩展,一个应用程序在解析xml文件的时候,不是靠固定的行数去解析,而是靠标签名或者元素名,那么有一天在xml文件中为某个标签新增一个元素,也不会影响应用程序(前提是应用程序写得标准)对它进行解析。
属性:给该标签提供更多的信息
例如:
<person sex="female">
...
</person>
<location name="shenzhen"> #属性值可以双引号括起来
<location name='shenzhen'> #当然也可以单引号括起来
<location name='shenzhen "futian" district'> #如果文本内容本身包含双引号,可用单引号来括起来
<location name="shenzhen "futian" district"> #"代表双引号,相当于转义字符一样
w3school说道,xml尽量少用属性,因为如果属性看起来像数据,还不如新增一个子元素。我觉得很有道理,毕竟属性的有无没有硬性规定,那样的话就不统一了。