XML的基本介绍

XML的基本介绍

1.什么是XML

XML(可扩展标记语言)是一种用于描述数据的标记语言。XML文档(也称为XML文件)由标签和展示数据的内容组成。

与HTML不同的是,XML没有预定义标签,而是让用户自己定义标签,从而使得XML可以应用于各种不同的场景和领域。此外,XML并没有像HTML那样被用于Web页面设计,而是被广泛用于表示、传输、存储和交换数据,尤其是在各种数据的互操作性方面。

2.XML的基本结构
  1. xml第一行一般是一行申明。<?xml version=“1.0” encoding=“UTF-8”>
  2. xml有且仅有一个跟元素。
  3. xml的结构类似html文件。
  4. 针对特殊字符的处理,xml有两种处理方式:实体引用、CDATA标签。

则一个基本的XML结构如下:

<?xml version="1.0" encoding="UTF-8"?>
<rootElement attribute="attributeValue">
    <childElement>
        <subElement>Sub element text</subElement>
    </childElement>
    <childElement>
        <subElement>Another sub element text</subElement>
    </childElement>
</rootElement>

特殊字符的处理:实体引用

实体引用就是当你使用特殊字符的时候(比如 > 、< 等字符),破坏了原本xml文档的基本语法结构,从而可以使用其他的特殊字符进行代替的行为。

$gt; 代表 >
$lt; 代表 <
$amp; 代表 &
$apos; 代表 ’
$quot; 代表 "

<rootElement attribute="attributeValue">
    <textElement>The &lt;b&gt;bold&lt;/b&gt; text in XML</textElement>
</rootElement>

特殊字符的处理:CDATA标签

基本逻辑就是,当你遇到不想被xml解析的片段,就使用CDATA标签包裹起来。

语法:<![CDATA[ 内容部分 ]]>

其中内容部分的东西,就不会被xml文档解析。

<rootElement attribute="attributeValue">
    <textElement><![CDATA[The <b>bold</b> text in XML]]></textElement>
</rootElement>

这样,a标签这一段就不会被xml进行解析。

3.XML语义约束

XML文档,写的规范不规范,需要进行约束,这个约束有两种约束方式,一种是DTD、一种是XML Schema文件。

  1. (DTD):DTD是一种针对XML文档定义元素和属性等结构的语言,可以用来定义XML文档的元素以及它们的层次结构、属性和实体等,从而约束XML文档的内容和结构。

一个DTD约束文件示例:

<!DOCTYPE webStore [
    <!ELEMENT webStore (product*)>
    <!ELEMENT product (name,price)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT price (#PCDATA)>
    <!ATTLIST product id CDATA #REQUIRED>
    <!ATTLIST price currency CDATA #IMPLIED>
]>

2.XML Schema:
与DTD类似,XMLSchema也是一种用于定义XML文档结构和约束的语言,它提供了许多DTD无法实现的强大功能。XML
Schema使用XML文档定义方式,可以定义元素、属性、数据类型、命名空间等,使得XML文档和数据能够更加精确地进行验证和约束。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.com/products" xmlns="http://www.example.com/products">
    <xs:element name="webStore">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="product" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="name" type="xs:string"/>
                            <xs:element name="price" type="xs:decimal"/>
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:string" use="required"/>
                        <xs:attribute name="currency" type="xs:string" use="optional"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Xpath表达式

在这里插入图片描述
Jaxen

Jaxen是一个java编写的Xpath开源库。
Jaxen底层依赖于DOM4j

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值