如果没有孩子,Biztalk会删除元素

时间:2015-01-13 14:24:49

标签: xslt biztalk

如何从输出文件中删除空元素?

我有一个像这样的输入文件:

 <Root>
  ...
   <Header>
    <Rows>
      ...
     </Rows>
     <Rows>
      ...
     </Rows>
   </Header>
   ....
 </Root>

映射到这个:

<Root>
  ...
  <OutHeader>
    <OutRows>
     ...
     </OutRows>
     <OutRows>
      ...
     </OutRows>
   </OutHeader>
   ...
 </Root>

这一切都很好,但是当输入文件看起来像这样:

<Root>
  ...
   <Header>
   </Header>
   ....
 </Root>

它映射到

<Root>
  ...
  <OutHeader>
  </OutHeader>
   ...
 </Root>

那是无效的(我不能改变架构)

因此,如果Header元素没有子元素,则OutHeader元素不能位于outfile

如何使用Biztalk地图中的functoid做到这一点?

1 个答案:

答案 0 :(得分:2)

编辑 -

  1. <Rows>链接到Index Functoid,第二个参数为1。
  2. 将Index Functoid链接到Logical Existence Functoid。
  3. 将Logical Existence Functoid链接到<OutHeader>
  4. 这意味着只有在第一个元素存在时才基本创建<OutHeader>