当前位置: 首页 > news >正文

XML笔记

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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 &quot;futian&quot; district"> #&quot;代表双引号,相当于转义字符一样

w3school说道,xml尽量少用属性,因为如果属性看起来像数据,还不如新增一个子元素。我觉得很有道理,毕竟属性的有无没有硬性规定,那样的话就不统一了。

 

 

转载于:https://my.oschina.net/michaelyuanyuan/blog/82087

相关文章:

  • StackPanel 堆栈面板
  • 利用宏控制打印
  • 思杰24x7中文技术服务上线
  • HDOJ 2015 偶数求和
  • JQUERY对RADIO,CHECKBOX,SELECT的操作常用方法大全
  • red hat 6.2 网卡启动报错
  • iptables用法详解
  • mini440开发板移植mplayer
  • 浅析Lua中table的遍历
  • Bit-map
  • CentOS下编译TFS笔记
  • PHP安装笔记
  • 产品2
  • centos下开启ssh
  • 在线检测笔记本电脑屏幕坏点
  • [译] 怎样写一个基础的编译器
  • [译]Python中的类属性与实例属性的区别
  • Apache Pulsar 2.1 重磅发布
  • classpath对获取配置文件的影响
  • es6
  • ES6系统学习----从Apollo Client看解构赋值
  • HashMap ConcurrentHashMap
  • Hibernate最全面试题
  • Mithril.js 入门介绍
  • Next.js之基础概念(二)
  • python_bomb----数据类型总结
  • Ruby 2.x 源代码分析:扩展 概述
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • VUE es6技巧写法(持续更新中~~~)
  • zookeeper系列(七)实战分布式命名服务
  • 电商搜索引擎的架构设计和性能优化
  • 机器学习 vs. 深度学习
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 简析gRPC client 连接管理
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 深入 Nginx 之配置篇
  • 网络应用优化——时延与带宽
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 在Mac OS X上安装 Ruby运行环境
  • 仓管云——企业云erp功能有哪些?
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (6)STL算法之转换
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (solr系列:一)使用tomcat部署solr服务
  • (八十八)VFL语言初步 - 实现布局
  • (笔试题)分解质因式
  • (二十三)Flask之高频面试点
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (六)软件测试分工
  • (十八)SpringBoot之发送QQ邮件
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .cn根服务器被攻击之后
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)