在 XML 软件包 中使用操作的示例
- Updated: 2023/05/22
在 XML 软件包 中使用操作的示例
使用 XML 软件包 创建 机器人,用于从 XML 文件读取数据并写入到 Excel 工作表中。
本教程中使用的 XML 示例结构如下:
<movies>
<movie genre="" year="">
<name></name>
<description></description>
<director></director>
<writers>
<writer type=""></writer>
<writer type=""></writer>
</writers>
<rating>R</rating>
</movie>
</movies>
在开始之前,下载一个示例 XML 文件。
本教程旨在演示如何执行以下操作:
- 使用 XPath 表达式获取具有特定值的节点集,并遍历节点集中的项目,例如本教程中具有特定评分的电影。
- 使用 XPath 函数遍历子节点集。
- 连接变量以创建字符串。
- 将数据写入 Excel 工作表。
先决条件
请确保以下各项:
- 知道如何创建 机器人。
- 熟悉 Control Room 用户界面。
过程
-
创建一个 机器人 并将其命名为 XMLDataReader。
-
添加一个步骤,将所有打开 Excel 工作表的任务进行分组。
-
在 机器人编辑器 中,将步骤 > 步骤
操作 添加到开始流程之后。
注: 要添加 操作,请在操作窗格中搜索 操作,然后将其拖动到 机器人编辑器 中的 机器人 流程中。
- 在标题中,输入打开 Excel 工作表并保存 操作。
-
在 机器人编辑器 中,将步骤 > 步骤
操作 添加到开始流程之后。
-
要创建和打开 Excel 工作表,请使用Excel 高级版 > 创建工作簿。
- 将Excel 高级版 > 创建工作簿 操作 添加到步骤 操作 中。
- 在文件路径中输入 C:\movies\movies.xlsx,并保存 操作。 如果指定路径中不存在 movies 文件夹,请在该路径中创建 movies 文件夹。
-
要选择 Excel 工作表上的第一个单元格,请使用 Excel 高级版 > 转到单元格
操作。
- 将Excel 高级版 > 转到单元格 操作添加到 Excel 高级版: 创建工作簿操作之后。
- 单击特定单元格(如果尚未选中),然后输入 A1。
- 保存操作。
-
创建另一个步骤,汇总所有用于检索 XML 数据的任务。
- 在第一个步骤 操作 之后添加步骤 > 步骤操作。
- 在标题中,输入获取 XML 数据并保存 操作。
-
启动 XML 会话。
- 在获取 XML 数据 步骤中添加 XML > 开始会话 操作。
- 在文件中,选择桌面,浏览并选择您下载的示例 XML 文件。
- 保存更改。
-
要获取所有评级为 R 的电影节点,请使用获取多个节点
操作。
- 将XML > 获取多个节点操作添加到开始会话 操作之后。
-
在 XPath 表达式中输入 //movie[rating/text()=\'R\'],并保存 操作。
选定的节点集存储在系统变量中,现在可用于 XML 数据集中的每个节点迭代器。
- 为确保操作检索整个节点集而不仅仅是文本节点,请单击 Xpath 表达式。
-
使用循环操作遍历获取多个节点
操作 检索到的选定节点集。
- 将 循环 > 循环添加到 XML: 获取多个节点 操作 之后。
- 在迭代器下,选择 XML > 对于 XML 数据集中的每个节点,作为迭代器。
- 在将当前行分配给此变量中,单击 (x) 并创建一个默认名称的变量,例如,XMLNode。 节点集中的每个项目现在都可以通过该变量获取。
- 保存 操作。
-
要从迭代的节点中获取电影名称,请使用获取单个节点
操作。
- 将XML > 获取单个节点操作添加到循环: 循环 操作 中。
- 在 XPath 表达式中,输入 $XMLNode$/name。
- 在将输出分配给变量中,创建一个变量,并将其命名为 sMovieName。
- 保存 操作。
-
要从 XMLNode 变量中写入电影名称,请使用设置单元格
操作。
- 在获取单个节点 操作 之后添加Excel 高级版 > 设置单元格 操作。
- 单击活动单元格,在单元格值中输入 $sMovieName$,并保存 操作。
-
要在 Excel 表中选择一个新单元格,请使用转到单元格
操作。
- 将设置单元格 操作后的转到单元格 操作添加到Excel 高级版: 设置单元格 操作 之后。
- 单击活动单元格,选择右侧的一个单元格,然后保存 操作。
-
要从迭代的节点中获取导演的名字,请使用获取单个节点
操作。
- 将XML > 获取单个节点 操作 添加到 Excel 高级版: 转到单元格 操作 之后。
- 在 XPath 表达式中输入 $XMLNode$/director。
- 在将输出赋给变量中,创建一个变量,名称为:sDirector
- 保存 操作。
-
要从 XMLNode 变量中写入导演姓名,请使用设置单元格
操作。
- 将 Excel 高级版 > 设置单元格 操作添加到 XML: 获取单个节点 操作 之后。
- 单击活动单元格,在单元格值中输入 $sDirector$,然后保存 操作。
-
要在 Excel 表中选择一个新单元格,请使用转到单元格
操作。
- 将转到单元格 操作 添加到 Excel 高级版: 设置单元格 操作 之后。
- 单击活动单元格,选择右侧的一个单元格,然后保存操作。
-
因为
<作家们>
节点可能包含多个<作家>
节点,获取每个编剧的名字,将名字连接起来,并将它们写入单个单元格,而不是将值写入多个单元格。 为此,请在当前的循环 操作中添加循环 操作。-
要获取节点内的
<作家>
节点数,<作家们>
将 XML > 执行 XPath 函数 添加到 Excel 高级版: 设置单元格 操作 之后。 在 XPath 表达式中输入 count($XMLNode$/writers/writer)。 在将输出分配给变量中,创建一个名为 sWriterCount 的变量。您将使用<作家>
节点数以遍历所有<作家>
节点。 -
将循环 > 循环 操作添加到 XML: 执行 XPath 函数
操作 之后。
重要: 必须将第二个循环 操作添加到主循环 操作中。
- 在迭代器下,选择 n 次 作为迭代器。
-
在次数中,输入以下内容:$sWriterCount.String:toNumber$
注: sWriterCount 包含一个字符串值。 要将字符串转换为数字,可以使用 lt;variable name>.String:toNumber$ 格式,例如,$sWriterCount.String:toNumber$。
- 在为变量指定当前值(可选)中,创建一个名称为 Counter 的变量。
- 保存 操作。
-
要获取节点内的
-
要连接所有编剧节点的值,请创建一个字符串变量。
-
在变量窗格中,单击加号 (+) 图标。
将打开创建变量窗口。
- 在类型中,选择字符串。
- 在名称中,输入 sWriters。
- 单击创建。
-
在变量窗格中,单击加号 (+) 图标。
-
要从迭代的
<作家>
节点中获取值,使用获取单个节点 操作。- 将XML > 获取单个节点 操作 添加到第二个循环 操作 中。
-
在 XPath 表达式中输入 $XMLNode$/writers/writer[$Counter.Number:toString$]。
使用 Counter 变量,可以访问特定索引处的节点。 请注意,由于 Counter 变量包含数值,因此将 .Number:toString$ 表达式添加到 Counter 变量中,以将其转换为字符串。
- 在将输出分配给变量中,创建一个变量,并将其命名为 sWriter。
- 保存 操作。
-
使用 字符串 > 分配
操作,从写入器节点分配值。
- 将 字符串 > 分配 操作 添加到第二个循环的XML: 获取单个节点之后。
- 在选择源字符串变量/值(可选)中,输入 $sWriters$, $sWriter$。
- 在选择目标字符串变量中,选择sWriters。
- 保存 操作。
内部循环完成后,sWriters 变量将包含所有作家的名称。 -
要将编剧姓名写入新单元格,请在主循环中使用 Excel 高级版 > 设置单元格 操作。
- 在第一个循环 操作内的循环操作之后添加Excel 高级版 > 设置单元格 操作。
- 单击活动单元格。
- 在单元格值中输入 $sWriters$
- 保存 操作。
从一个节点检索到的数据<电影>
被写入一行。 要将来自下一个节点的数据<电影>
写入,您必须选择 Excel 工作表中的下一行。 -
要将光标移动到下一行,请使用Excel 高级版 > 转到单元格
操作。
- 在设置单元格 操作之后添加转到单元格 操作。
- 单击活动单元格,选择行首,然后保存 操作。
- 再次添加转到单元格 操作。 单击活动单元格,选择下方一个单元格,然后保存 操作。
-
在检索到的节点集中迭代
<电影>
下一个节点之前,必须重置 sWriters 变量。 要重置 sWriters 变量,请执行以下步骤:- 将 字符串 > 分配 操作添加到主循环的 Excel 高级版: 转到单元格之后。
- 将选择源字符串变量/值(可选)留空。
- 在选择目标字符串变量中,选择sWriters。
-
保存 操作。
-
创建新步骤。
- 在第二个步骤操作之后添加步骤 > 步骤操作。
- 在标题中,输入关闭文件。
-
要关闭 Excel 工作表,请使用 Excel 高级版
关闭
操作。
- 在关闭文件步骤中添加 Excel 高级版 > 关闭。
- 保存更改。
-
运行 机器人。