- 雷克斯教程
- 雷克斯 - 主页
- Rexx - 概述
- Rexx - 环境
- Rexx - 安装
- Rexx - 插件安装
- Rexx - 基本语法
- Rexx - 数据类型
- Rexx - 变量
- Rexx - 操作员
- Rexx - 数组
- Rexx - 循环
- Rexx - 决策
- Rexx - 数字
- Rexx - 弦乐
- Rexx - 功能
- Rexx - 堆栈
- Rexx - 文件 I/O
- Rexx - 文件函数
- Rexx - 子程序
- Rexx - 内置函数
- Rexx - 系统命令
- 雷克斯-XML
- 雷克斯 - 里贾纳
- Rexx - 解析
- Rexx - 信号
- Rexx - 调试
- Rexx - 错误处理
- Rexx - 面向对象
- Rexx - 便携性
- Rexx - 扩展功能
- Rexx - 说明
- Rexx - 实施
- 雷克斯 - Netrexx
- 雷克斯 - Brexx
- Rexx - 数据库
- 手持式和嵌入式
- Rexx - 性能
- Rexx - 最佳编程实践
- Rexx - 图形用户界面
- 雷克斯 - 雷金纳德
- Rexx - 网络编程
- 雷克斯有用资源
- Rexx - 快速指南
- Rexx - 有用的资源
- Rexx - 讨论
雷克斯-XML
XML 是一种可移植的开源语言,它允许程序员开发可以被其他应用程序读取的应用程序,而不管操作系统和/或开发语言如何。这是用于在应用程序之间交换数据的最常用语言之一。
什么是XML?
可扩展标记语言 XML 是一种与 HTML 或 SGML 非常相似的标记语言。这是由万维网联盟推荐并作为开放标准提供的。XML 对于跟踪中小型数据量非常有用,无需基于 SQL 的主干。
对于我们所有的 XML 代码示例,我们使用以下简单的 XML 文件movie.xml来构建 XML 文件并随后读取该文件。
<collection shelf = "New Arrivals"> <movie title = "Enemy Behind"> <type>War, Thriller</type> <format>DVD</format> <year>2003</year> <rating>PG</rating> <stars>10</stars> <description>Talk about a US-Japan war</description> </movie> <movie title = "Transformers"> <type>Anime, Science Fiction</type> <format>DVD</format> <year>1989</year> <rating>R</rating> <stars>8</stars> <description>A schientific fiction</description> </movie> <movie title = "Trigun"> <type>Anime, Action</type> <format>DVD</format> <year>1986</year> <rating>PG</rating> <stars>10</stars> <description>Vash the Stam pede!</description> </movie> <movie title = "Ishtar"> <type>Comedy</type> <format>VHS</format> <year>1987</year> <rating>PG</rating> <stars>2</stars> <description>Viewable boredom </description> </movie> </collection>
入门
默认情况下,Rexx 解释器中不包含 xml 功能。为了在 Rexx 中使用 XML,需要遵循以下步骤。
下载以下文件 -
Rexxxml - www.interlog.com/~ptjm/
Libxml2 - www.ctindustries.net/libxml/
iconv-1.9.2.win32 - www.xmlsoft.org/sources/win32/oldreleases/
libxslt-1.1.26.win32 - www.xmlsoft.org/sources/win32/oldreleases/
提取所有文件并确保它们包含在系统路径中。
加载 XML 函数
下载并成功注册上一节中的所有文件后,下一步是编写代码来加载 Rexx XML 函数。这是通过以下代码完成的。
rcc = rxfuncadd('XMLLoadFuncs', 'rexxxml', 'xmlloadfuncs') if rcc then do say rxfuncerrmsg() exit 1 end call xmlloadfuncs
关于上述程序,需要注意以下几点 -
函数rxfuncadd用于加载外部库。xmlloadfuncs函数用于将rexxml文件中的所有库加载到内存中。
如果rcc的值<>0,那么就会产生错误。为此,我们可以调用rxfuncerrmsg来为我们提供有关错误消息的更多详细信息。
我们最后调用xmlloadfuncs,以便现在可以在 Rexx 程序中启用所有 xml 相关功能。
让我们看看Rexx 中可用于 XML 的各种方法。
xml版本
此方法返回系统上使用的 XML 和 XSLT 库的版本。
句法
xmlVersion()
参数
没有任何
返回值
此方法返回系统上使用的 XML 和 XSLT 库的版本。
例子
rcc = rxfuncadd('XMLLoadFuncs', 'rexxxml', 'xmlloadfuncs') if rcc then do say rxfuncerrmsg() exit 1 end call xmlloadfuncs say xmlVersion()
当我们运行上面的程序时,我们将得到以下结果。这又取决于系统上使用的 XML 库的版本。
输出
1.0.0 20631 10126
xml解析XML
该函数用于解析发送到该函数的XML数据。该函数返回文档树。
句法
xmlParseXML(filename)
参数
文件名- 这是需要解析的 XML 文件的名称。
返回值
该函数返回文档树。否则,如果有错误,则返回 0。
例子
rcc = rxfuncadd('XMLLoadFuncs', 'rexxxml', 'xmlloadfuncs') if rcc then do say rxfuncerrmsg() exit 1 end call xmlloadfuncs say xmlVersion() sw = xmlParseXML('test.xml')
输出
无一般输出。
xml查找节点
此方法计算传递给它的XPath 表达式。这用于解析文档树以产生可以进一步处理的节点集。
句法
xmlParseXML(XPath,document)
参数
XPath - 这是 xml 文件中节点的路径。
document - 这是 XML 文档
返回值
计算 XPath 表达式并将结果作为节点集返回,供以后使用。
例子
rcc = rxfuncadd('XMLLoadFuncs', 'rexxxml', 'xmlloadfuncs') if rcc then do say rxfuncerrmsg() exit 1 end call xmlloadfuncs say xmlVersion() document = xmlParseXML('test.xml') nodeset = xmlFindNode('//movie', document) say xmlNodesetCount(nodeset)
当我们运行上面的程序时,我们将得到以下结果。
输出
4
输出显示 xml 列表中电影节点的数量
xmlEval表达式
以下方法用于计算 XPath 表达式并返回字符串作为结果。
句法
xmlParseXML(XPath,Node)
参数
XPath - 这是 xml 文件中节点的路径。
document - 特定的节点元素。
返回值
根据发送给它的 XPath 表达式返回一个字符串。
例子
rcc = rxfuncadd('XMLLoadFuncs', 'rexxxml', 'xmlloadfuncs') if rcc then do say rxfuncerrmsg() exit 1 end call xmlloadfuncs document = xmlParseXML('test.xml') nodeset = xmlFindNode('//movie', document) do j = 1 to xmlNodesetCount(nodeset) value = xmlEvalExpression('type', xmlNodesetItem(nodeset, j)) say value end
当我们运行上面的程序时,我们将得到以下结果。
输出
War, Thriller Anime, Science Fiction Anime, Action Comedy