我需要在BizTalk映射中的两个级别上使用条件循环,但是我用于创建父数据的条件会禁止创建子数据。
有关如何在BizTalk映射器中映射以下内容的任何想法:
评论:<组>和< Row>元素处于同一水平。
<Line> <Name>Group</Name> <RowNo>1</RowNo> </Line> <Line> <Name>Row</Name> <RowNo>1</RowNo> </Line> <Line> <Name>Row</Name> <RowNo>2</RowNo> </Line> <Line> <Name>Group</Name> <RowNo>2</RowNo> </Line> <Line> <Name>Row</Name> <RowNo>1</RowNo> </Line> <Line> <Name>Row</Name> <RowNo>2</RowNo> </Line>
评论:&lt; Row&gt;元素应该在&lt; Group&gt;下元件。
<Group> <Name>Group</Name> <RowNo>1</RowNo> <Row> <Name>Row</Name> <RowNo>1</RowNo> </Row> <Row> <Name>Row</Name> <RowNo>2</RowNo> </Row> </Group> <Group> <Name>Group</Name> <RowNo>2</RowNo> <Row> <Name>Row</Name> <RowNo>1</RowNo> </Row> <Row> <Name>Row</Name> <RowNo>2</RowNo> </Row> </Group>
创建子元素&lt; Row&gt;在输出中非常简单,我使用一个条件来检查输入&lt; Line / Name&gt; =“Row”然后映射输入元素中的内容&lt; Line&gt;输出元素&lt; Row&gt;。
问题是当我使用相同的逻辑来创建输出父元素&lt; Group&gt;时。如果我检查是否输入&lt; Line / Name&gt; =“Group”,这将正确地创建输出元素&lt; Group&gt;,但是当这个条件未完全填充时(即Name = Row),这也将禁止创建childelement&lt; ;行&gt;,因此产生以下输出:
<Group> <Row /> <Name>Group</Name> <RowNo>1</RowNo> </Group> <Group> <Row /> <Name>Group</Name> <RowNo>2</RowNo> </Group>
有人能指出我正确的方向吗?或者这是否会迫使我进入XSLT丛林?
我可以通过使用编排来解决这个问题,但我希望我在接收端口上将其作为一个地图运行,所以我非常想在一个地图中解决这个问题。
答案 0 :(得分:1)
xslt不 很难。有很多情况需要它。这是其中之一。帮自己一个忙,试一试。真!