zoukankan      html  css  js  c++  java
  • Python中的XML

    XML(eXtensibleMarkupLanguage)定义:可扩展标记语言

    XML文档的而构成:

    - 处理指令(可以认为一个文件内只有一个处理指令)
    最多只有一行,且必须在第一行
    内容是与xml本身处理起相关的一些声明或者指令
    以xml关键字开头,一般用于声明XML的版本和采用的编码
    version属性是必须的
    encoding属性用来指出xml解释器使用的编码
    - 根元素(一个文件内只有一个根元素)
    在整个xml文件中,可以把他看作一个树形结构
    根元素有且只能由一个
    - 子元素
    - 属性
    - 内容
    - 注释
    注释不能嵌套在标签里
    只有在注释的开始和结尾使用双短横线
    三短横线只能出现在注释的开头而不能用在结尾

    <name> <!-- wangdapeng -->   </name> #可以
    <name <!-- wangdapeng -->>   </name> #不可以,注释在标签内
                    
    <!--my-name-by-wang--> #可以,注释内容可以有一个短横线
    <!--my--name--by--wang-->#不可以,双短横线只能出现在开头或结尾
                    
    <!---my-name--> #可以, 三短横线只能出现在开头
    <!---my-name---> #不可以, 三短横线只能出现在开头 

    XML中保留字符的处理方法:
    XML中使用的符号可能跟实际符号相冲突,典型的就是左右尖括号
    1.使用实体引用(EntityReference)来表示保留字符

    <score> score>80 </score> #有错误,xml中不能出现>
    <score> score&gt;80</score> #使用实体引用

    2.把含有保留字符的部分放在CDATA块内部,CDATA块把内部信息视为不需要转义

    <![CDATA[
    select name,age
    from Student
    where score>80
    ]]>

    3.常用的需要转移的保留字符和对应实体引用
    - &:&amp;
    - <:&lt;
    - >:&gt;
    - ':&apos;
    - ":&quot;
    - 共五个,每个实体引用都以&开头并且以;结尾

    为了避免命名冲突,需要给可能冲突的元素添加命名空间:

    #两个元素中都有一个name属性
    <Student>
        <Name>LiuYing</Name>
        <Age>23</Age>
    </Student>
    
    <Room>
        <Name>2014</Name>
        <Location>1-23-1</Location>
    </Room>

    如果归并上述两个元素,就有有两个name,会产生冲突,这时需要用到命名空间xmlns: xml name space的缩写:

    <Schooler xmlns:student="http://my_student" xmlns:room="http://my_room">
                        <student:Name>LiuYing</student:Name>
                        <Age>23</Age>
                        <romm:Name>2014</room:Name>
                        <Location>1-23-1</Location>
    </Schooler>
  • 相关阅读:
    一句话命令修改大小写
    SpringBoot打成jar包后无法读取resources资源文件里文件路径的问题 cannot be resolved to absolute file path because it does
    java路径两种写法"/"和"\"
    java SASL_SSL 帐号密码 方式访问 kafka
    Mybatis 获得自动生成主键值
    swo2 SOA OAuth 使用,
    java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp是因为时间字段里有'0000-00-00 00:00:00‘这种格式的日期导致的
    OkHttp3找不到FormEncodingBuilder
    Maven依赖的版本范围
    java lambda求和
  • 原文地址:https://www.cnblogs.com/wjw2018/p/10544907.html
Copyright © 2011-2022 走看看