从平面文件模式中提取的每个字符串的新记录

时间:2019-03-05 16:03:35

标签: biztalk biztalk-2010

我有一个源平面文件源模式,该模式只有一个节点,该节点将包含一个长字符串。

Demo
  newDemo (length 10)

我有以下目标架构

Employee
  FName
  LName

现在,我正在从源模式的newDemo元素中提取字符串。但是我想为每个提取的字符串创建新的Employee记录。

示例:newDemo的值为abcdefghij。首先,我为FName提取1,2,为LName提取3,5。我再次为FName提取6,7,为LName提取8,10。 所以我希望输出如下。

</Employee>    
  <FullName>
    <FName>ab</>
    <LName>cde</LName>
</Employee>
<Employee>
    <FName>fg</>
    <LName>hij</LName>
</Employee>

enter image description here 该地图具有以下XSLT。

<xsl:variable name="var:v1" select="userCSharp:StringSubstring(string(Demo/text()) , &quot;1&quot; , &quot;5&quot;)" />
    <xsl:variable name="var:v2" select="userCSharp:LogicalExistence(string($var:v1))" />    
<xsl:if test="$var:v2">
          <xsl:variable name="var:v3" select="string(Demo/text())" />
          <xsl:variable name="var:v4" select="userCSharp:StringSubstring($var:v3 , &quot;1&quot; , &quot;5&quot;)" />
          <xsl:variable name="var:v5" select="userCSharp:LogicalNe(string($var:v4) , &quot;A&quot;)" />
          <xsl:variable name="var:v6" select="userCSharp:StringSubstring($var:v3 , &quot;6&quot; , &quot;8&quot;)" />
          <xsl:variable name="var:v7" select="userCSharp:LogicalNe(string($var:v6) , &quot;B&quot;)" />
          <ns0:FullName>
            <xsl:if test="string($var:v5)='true'">
              <fname>
                <xsl:value-of select="$var:v4" />
              </fname>
            </xsl:if>
            <xsl:if test="string($var:v7)='true'">
              <fname>
                <xsl:value-of select="$var:v6" />
              </fname>
            </xsl:if>
            <lname>
              <xsl:value-of select="$var:v4" />
            </lname>
            <lname>
              <xsl:value-of select="$var:v6" />
            </lname>
          </ns0:FullName>
        </xsl:if>

它将全名和姓氏都放在一个全名下,而我要两个全名。

0 个答案:

没有答案