将行xml元素/添加属性的内容设置为Kettle XML输出中的子元素?

时间:2015-09-16 18:24:10

标签: xml output pentaho kettle

我的父XML元素称为Rows(XML根节点),行XML元素称为Row

我可以输出字段作为Row的属性,或者将子元素的内容设置为源字段值。

<Rows>
  <Row attr1="..." attr2="...">
    <Elem1>...</Elem1>
    <Elem2>...</Elem2>
  </Row>
</Rows>

是否有办法设置Row的内容?或者将属性添加到子元素? ..或空白元素名称不起作用。

<Rows>
  <Row attr1="..." attr2="...">
    ...
  </Row>
</Rows>

或者

<Rows>
  <Row>
    <Elem1 attr1="..." attr2="..."></Elem1>
  </Row>
</Rows>

1 个答案:

答案 0 :(得分:0)

正如@simar评论的那样,你的问题有点模糊,但我想我可以给你一些启发。正如他所提到的,这是可能的 - 这是一个创建多级复杂XML的例子: huge transformation that creates XML 我将专注于第一个子转换“标题”,因为它已经有多个元素和属性: smaller transformation that creates the XML "header" 我要在这里挤一些,除非我用太多的图像填满这个。首先,数据网格包含一些属性,“添加XML”步骤配置和预览(抱歉模糊): detailed input, Add XML and preview 正如您在彩色框中看到的那样,字段将被输入到“添加XML”步骤,您可以在其中配置它们是属性还是元素。

  • 从图片2开始,在第一个数据网格上添加了蓝色字段 在Add XML步骤中用作元素的属性 “documentoDLO”。
  • 在“占位符”添加上添加了红色字段 常量步骤,映射为“非属性”(因此,元素) 添加XML步骤,并显示为嵌套在“documentoDLO”...
  • 上的元素

只是不要问我为什么那些元素不靠近自己(而不是),我遗憾地不知道如何解释。但是不要担心,只要我们加入XML,它就会得到修复。所以,继续下一步:加入!我要在这个屏幕上需要两个屏幕: detailed "Add XML 2" step 好的,在预览面板上看到“添加XML 2”如何将两个字段转换为2个属性。现在,转到“XML Join”: detailed XML Join 在这里,您可以看到“添加XML”是目标步骤 - 或者是将信息加入INTO的步骤。源步骤是添加XML 2,其中我们想要在XML流上加入的信息当前是。 path语句定义XML源字段将在目标XML上插入的位置 - 因为我们定义了“// limitesInformados”,“Add XML 2”中的这两行成为

的两个子元素

可以找到此过程创建的文件示例here