金仓数据库KingbaseES
XML相关概念
关键字:
XML
1. XML
简介
XML 指可扩展标记语言(EXtensible Markup Language)
- XML与HTML的区别:
- XML 被设计用来结构化、存储以及传输信息
- HTML 被设计用来显示数据
- XML 不会做任何事情
- XML 允许定义自己的标签和文档结构
语法规则如下
<!--XML 声明文件的可选部分,如果存在需要放在文档的第一行-->
<?xml version="1.0" encoding="utf-8"?>
<!--XML 必须包含根元素-->
<root>
<!--每个元素包括开始标签、结束标签和元素内容,内容中的空格会被保留-->
<child> ... </child>
<!--元素可以包含属性,属性提供有关元素的附加信息,
属性值必须加引号,属性不属于数据组成部分的信息,
XML 中尽量避免使用属性,认为是数据就用元素包含-->
<person age="30" gender="male">John Doe</person>
<!--空元素标签:一个标签中同时包含了开始和结束标签,不包含任何内容-->
<exampleTag />
<!--XML 标签对大小写敏感-->
<Message>这是错误的</message>
<message>这是正确的</message>
<!--所有元素都必须彼此正确地嵌套-->
<b><i>这是错误的</b></i>
<b><i>这是正确的</i></b>
<!--一些字符拥有特殊的意义,利用实体引用替代-->
<message> < 在元素中会出错</message>
<message> < 在元素中替换 < </message>
</root>
XML 解析器
- 把 XML 文档解析到 XML DOM 对象中
- 把 XML 字符串解析到 XML DOM 对象中
- XML DOM
- XML Document Object Model:定义访问和操作XML文档的标准方法
- 把 XML 文档作为树结构来查看
- 所有元素可以通过 DOM 树来访问。可以修改或删除它们的内容,并创建新的元素。元素,它们的文本,以及它们的属性,都被认为是节点。
析常用的函数
2. Xpath
Xpath是一门在 XML 文档中查找信息的语言
- XPath 节点
- 节点,有其中类型:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点
- 基本值:无父或无子的节点
- 项目:基本值或节点
- 节点关系:父、子、同胞、先辈(节点的父、父的父、...)、后代(节点的子、子的
- 子、...)……
- XPath语法:XPath 用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的
- XPath运算符:XPath 表达式可返回节点集、字符串、逻辑值以及数字
3. XQuery
XQuery 被设计用来查询 XML 数据,建立在 XPath 表达式之上。
- XQuery FLWOR表达式
- for :把 bookstore 元素下的所有 book 元素提取到名为 $x 的变量中
- where :选取了 price 元素值大于 30 的 book 元素
- order by :定义了排序次序。将根据 title 元素进行排序
- return :规定返回什么内容。在此返回的是 title 元素
- XQuery语法
- 语法规则:
- XQuery 对大小写敏感
- XQuery 的元素、属性以及变量必须是合法的 XML 名称。
- XQuery 字符串值可使用单引号或双引号。
- XQuery 变量由 "$" 并跟随一个名称来进行定义,举例,$bookstore
- XQuery 注释被 (: 和 :) 分割,例如,(: XQuery 注释 :)
- 条件表达式:
- "If-Then-Else" 可以在 XQuery 中使用
- if 表达式后的圆括号是必需的,else 也是必需的
- 只写 "else ()" 也可以
- XQuery比较
- 通用比较:=, !=, <, <=, >, >=
- 值的比较:eq、ne、lt、le、gt、ge
- 语法规则:
- XQuery函数
- 含有超过 100 个内建的函数,可用于字符串值、数值、日期以及时间比较、节点和 QName操作、序列操作、逻辑值等等
- 可在 XQuery 中定义自己的函数
- 函数调用可与表达式一同使用
参考资料
sql-server-ver16开发手册