xmlupdate
这个转换器通过执行以下一个或多个操作来修改XML文档:
- 替换XML元素或属性。
- 替换元素或属性的内容。
- 删除XML元素或属性。
- 删除XML元素或属性的内容。
- 重命名元素或属性
- 插入新元素或属性。
对于每个文档更新,都使用一个XML路径表达式来标识要修改的项的位置。注意,该路径可以引用多个项目。如果是这样,所有的项目都将被修改。
对于替换现有项或插入新项的修改,给出两个参数,它们指定要添加到文档中的值。这个值可以是一个简单的文本值,也可以是一个XQuery表达式。
的更新特性提供文档更新操作中使用的属性值。的文档特性仅用于提供要更新的XML文档。
的每个特性更新端口,转换器中列出的所有更新操作将应用于通过文档端口。因此,如果没有特性通过更新港口。
需要注意的是,如果将文档直接输入transformer参数中,可能会以两种不同的方式进行处理:
- 如果没有文档向transformer提供了一些特性,将创建一个新特性来存储文档。每个更新都将应用于文档,然后通过文档端口。
- 如果文档transformer具有特定的特性,每个更新将应用于文档,然后将文档复制到每个文档文档在变压器输出这些特性之前输入特性。
输入端口
输入特性包含要修改的XML文档。文档可以包含在属性中,可以直接输入到转换器中,也可以包含在属性值引用的文件中。
对于进入此输入端口的每个特性,转换器中列出的每个更新都将在通过文档输入端口。这些特性将包含文档更新中使用的属性值。
输出端口
的文档输入特性将通过此端口输出。这些特性将包含更新后的文档,文档将存储在Result属性参数中名为的属性中。
参数
此参数用于指定将修改文档的更新特性。当将此参数设置为属性列表时,文档功能将只被修改更新共享这些属性相同值的特性。文档将由具有相同属性值的所有更新特性进行修改。请注意,如果没有,文档将不会更新更新“group by”属性具有相同值的特性被提供给转换器。
XML文档
此参数用于指定要修改的XML文档的类型。XML可以来自输入特性(参数值:文本或属性),也可以来自外部文件。(参数值:XML文件)
当XML输入参数设置为文本或属性时,该参数用于指定XML文件。可以将参数设置为属性值,也可以将XML文档直接输入参数。
当XML输入参数设置为XML文件时,该参数用于指定文件的位置。文件路径可以直接输入到参数中,也可以来自属性值。
更新
此参数指定要应用于XML文档的修改类型。可能的更新是:
更新类型 | 描述 |
---|---|
取代 |
XML路径参数引用的每个项都将被value参数中给出的值替换。 |
替换内容 |
XML Path参数引用的每个项的内容都将被value参数中给出的值替换。 |
替换为内容 |
XML Path参数引用的每个项都将被其内容替换。也就是说,将删除节点,但保留节点的子节点和文本内容。 |
删除 |
XML路径参数引用的每个项都将从文档中删除。 |
删除内容 |
XML路径参数引用的项的内容将从文档中删除。如果路径引用了一个元素,那么引用元素的所有子元素和文本内容都将被删除,而属性将不被修改。如果路径引用一个属性,它的值将被删除。 |
重命名 |
路径引用的元素或属性将被重命名。注意,如果值类型参数是XML/XQuery,那么值参数中的XQuery表达式应该计算为字符串或QName对象。 |
插入为第一个子元素 |
value参数中给出的值将作为XML Path参数引用的每个元素的第一个子元素插入。 |
插入最后一个子结点 |
value参数中给出的值将作为XML Path参数引用的每个元素的最后一个子元素插入。 |
插入之前的兄弟结点 |
value参数中给出的值将被插入到XML Path参数引用的每个项的父元素中。它将立即出现在所提及的项目之前。 |
插入为下一个同级 |
value参数中给出的值将被插入到XML Path参数引用的每个项的父元素中。它将立即出现在所引用的项目之后。 |
此参数指定要更新的XML节点的位置。这里可以使用任何XQuery表达式,只要它返回输入文档中包含的节点即可。如果路径表达式计算为多个项目,则它们都将被修改。
最简单的参数值是路径表达式,例如:
/ /记录/数据名称
使用此路径表达式,转换器将修改每个
[1]/名称/数据/记录
类似地,谓词也可以用于根据属性值缩小选择范围:
/数据/记录[@ id = " - 123 "] /的名字
值得注意的是,由于这是一个XQuery表达式,所以可以使用FME XQuery函数。
注意:路径参数中使用的XQuery函数将应用于更新正在处理的特性,而不是文档正在更新的特性
/数据/记录[@ id = fme: get-attribute (“record_id”)] /的名字。
变压器只会修改那些
/数据/记录[@ id = fme: get-list-attribute (“_id{}”)] /的名字
路径表达式必须是名称空间正确的。也就是说,前缀(或缺少前缀)必须与输入XML文档中使用的前缀完全匹配。通配符(*)可以用作名称空间前缀。的路径/ *:数据将匹配任何名称空间中的元素,包括默认名称空间和空名称空间。类似地,通配符可以用于元素名称。的路径gml: *将匹配名称空间中绑定到gml前缀的任何元素。为了把这些方法结合起来*:*不能使用语法。相反,应该使用单个*字符。
此参数用于指示应如何解释值参数的值。在值参数的描述中解释了该参数不同取值的影响。通常,如果转换器打算将文本内容插入文档,则应该将该参数设置为纯文本,而如果转换器打算将XML元素插入文档,则应该将该参数设置为XML/XQuery。
此参数用于指定应插入到文档中的新值。如果将值类型参数设置为纯文本,则将对该参数的内容进行编码,以便在XML文档中安全地使用。亚搏在线也就是说,<字符将被编码为<,>字符将被编码为>,以此类推。
如果将值类型参数设置为XML/XQuery,则该参数的内容将被解释为XQuery表达式。这允许将XML元素插入到文档中。此外,这还允许使用FME XQuery函数。例如,一个XML模板(例如,来自XMLTemplater可以输入transformer)作为参数值。然后在将其插入文档之前对其进行评估。
注意:新值中使用的任何FME XQuery函数都将访问更新功能,而不是文档特性。
参数
此参数指定Workbench是否应该尝试验证传递给XML Path列和Value列中使用的任何XQuery函数的属性名。
此参数指定将更新的XML文档写入到的属性。默认值是_result。
此参数指定更新后的XML文档是否应该以XML标头声明开始。默认情况下,输出将包含一个XML标头。当输出与其他值连接成更大的XML文档时,省略标头可能很有用。
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来分配transformer参数。更高级的功能,如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击在可适用的参数旁边。有关更多信息,请参见变压器参数菜单选项。
变压器的分类
搜索FME知识中心
有关此变压器的示例和信息,请参阅FME知识中心。