vb6.0 循环处理xml 数据_Kettle(PDI)转换中XML文件输入StAX解析详解

概述

XML input stream (StAX)(XML文件输入(StAX解析))步骤使用XML (StAX)解析器流API从XML文件中读取数据。这一步对于快速处理大型和复杂的数据结构是最理想的。与使用内存处理并需要清除部分文件的从XML文件输入步骤不同,XML文件输入(StAX解析)步骤将处理逻辑转移到转换中。该步骤本身提供了原始XML数据流以及其他处理信息。

当您对其他步骤有限制时,或者需要解析XML时,建议使用的是流式传输步骤:

  • 需要与内存无关的快速数据加载,而不管文件大小
  • 需要灵活地以不同的方式读取XML文件的各个部分,并且不希望重复解析该文件。

因为某些XML文件的处理逻辑可能很复杂,所以在使用这个步骤时,应该对现有的Kettle步骤有很好的了解。

选项

1ca95316f3ab87449d1f5c688593780c.png

XML input stream (StAX)(XML文件输入(StAX解析))步骤有以下选项:

Step name(步骤名称):在画布上指定XML input stream (StAX)(XML文件输入(StAX解析))步骤的唯一名称。您可以自定义名称或将其保留为默认名称。

Filename(文件名):输入XML文件的文件名。通过输入文件名的路径或单击浏览(B)..按钮来指定文件名。如果您连接到XML输入流步骤之前的一个步骤,那么浏览(B)..按钮将被隐藏,文本框将变成一个下拉菜单,其中填充了来自前一个步骤的字段。从下拉菜单中选择一个值作为XML文件的路径。您可以使用内部变量来指定路径。

Source is from a previous step(源来自上一个步骤):接受前面步骤中字段中的数据。

Source field name(源字段名称):从上一步中选择一个字段作为XML数据。

Add filename to result?(将文件名添加到结果中?):通过将XML输入文件的文件名作为每个结果行上的值传递,将处理过的XML文件名添加到此转换的结果中。然后,可以在后续步骤中使用它,希望将文件名用作值。

Skip (Elements/Attributes)(忽略 (Elements/Attributes)):应该跳过的元素或属性的数量。此字段用于在文件中的特定位置开始处理。解析器仍将加载该文件,但不会生成行。

Limit (Elements/Attributes)(限制(Elements/Attributes)):限制要处理的元素或属性的数量使用忽略和限制属性,您可以启用在外部循环中定义的块加载。

Default String Length(默认字符串长度):XML数据名称和值字段的默认字符串长度。

Encoding(编码):以指定的编码方式编码XML文件数据。

Add Namespace information?(添加命名空间信息?):将XML数据类型名称空间添加到数据流中。您可以添加一个可选的前缀(在XML数据名称中定义)和URI信息(在XML数据值中定义)。该选项将元素数据类型中定义的前缀添加到XML数据名称中,例如,prefix:product。由于额外的名称空间处理,此选项降低了处理吞吐量。

Trim strings?(裁剪字符串?):修饰所有名称/值元素和属性。它消除了字符串开头和结尾的空格、制表符、回车符和换行符。

Include filename in output? / Fieldname(输出文件名/字段名):将已处理的文件名添加到指定的字段名。

Row number in output? / Fieldname(输出记录数/字段名):将已处理的行号(从1开始)添加到指定的字段名。

XML data type (numeric) in output? / Fieldname(输出XML数据类型(描述)/字段名):以数字格式将已处理的数据类型添加到指定的字段名。定义了以下数据类型:0 - "UNKNOWN" (保留);1 - "START_ELEMENT";2 - "END_ELEMENT";3 - "PROCESSING_INSTRUCTION" (保留);4 - "CHARACTERS";5 - "COMMENT" (保留);6 - "SPACE" (保留);7 - "START_DOCUMENT";8 - "END_DOCUMENT";9 - "ENTITY_REFERENCE" (保留);10-"ATTRIBUTE";11-"DTD" (保留);12-"CDATA" (保留);13-"NAMESPACE" (When namespace information is selected);14-"NOTATION_DECLARATION" (保留);15-"ENTITY_DECLARATION" (保留)。

XML data type (description) in output? / Fieldname(输出XMl数据类型(描述)/字段名):以文本格式将已处理的数据类型添加到指定的字段名。为了提高转换的可读性,应该使用此选项而不是数字数据类型。有关值的列表,请参阅上面的XML数据类型(数值)描述。由于此选项会导致字符串处理速度变慢和额外的内存消耗,因此建议对大数据加载使用数值数据类型格式。

XML location line in output? / Fieldname:将已处理的源XML位置行添加到指定的字段名。

XML location column in output? / Fieldname:将已处理的源XML位置列添加到指定的字段名。

XML element ID in output? / Fieldname(输出XML element ID?/字段名):将已处理的元素号(从'0'开始)添加到指定的字段名。与添加行号相反,该字段号是按每个新元素的计数递增的,而不是按行号递增。这种编号确保了级别之间的嵌套是正确的。

XML parent element ID in output? / Fieldname(输出XML父 element ID?/字段名):将父元素号添加到指定的字段名。当使用XML element ID和XML父element ID时,可以使用完整的XML元素树供以后使用。

XML element level in output? / Fieldname(输出XML element 层次?/字段名):将已处理的元素级别添加到指定的字段名,从根START_和END_DOCUMENT的“0”开始。

XML path in output? / Fieldname(输出XML 路径?/字段):将处理过的XML路径添加到指定的字段名。

XML parent path in output? / Fieldname(输出XML 父路径?/字段):将已处理的XML父路径添加到指定的字段名。

XML data name in output? / Fieldname(输出XML 数据名称?/字段):将元素、属性和可选名称空间的已处理数据名称添加到指定的字段名称。

XML data value in output? / Fieldname(XML 数据值?/字段):将元素、属性和可选名称空间uri的处理过的数据值添加到指定的字段名。

如果需要设置/重置功能,您可以使用修改后的Java脚本值脚本步骤或用户定义的Java类步骤来创建一个。推荐使用用户定义的Java类步骤,因为它更快。

示例

双击输入中的XML文件输入(StAX解析),添加一个XML文件输入(StAX解析)。

922cceeaa705c04303f411ae8105e0ad.png

XML文件输入(StAX解析)

然后双击添加的步骤进行编辑。

fc0dbbe9920881cbd19a7e3090269a3d.png

接点击浏览,选择文件/data-integration/samples/transformations/files/example.xml。

95f855fa220deb47f1bd9d551ec46a9d.png

选择xml文件

然后点击预览,预览数据列表。

96625f0ac0efefa08bd8b4d49c0dbe17.png

预览的数据可以作为其他步骤的数据输入流。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值