новая запись для каждой извлеченной строки из схемы плоского файла - PullRequest
0 голосов
/ 05 марта 2019

У меня есть исходная схема исходного плоского файла, в которой есть только один узел, который будет содержать длинную строку.

Demo
  newDemo (length 10)

У меня есть следующая схема назначения

Employee
  FName
  LName

СейчасЯ извлекаю строку из элемента newDemo исходной схемы.но я хочу создать новую запись Employee для каждой извлеченной строки.

пример: newDemo имеет значение abcdefghij.Сначала я извлекаю 1,2 для FName и 3,5 для LName.Снова извлекаю 6,7 для FName и 8,10 для LName.Поэтому я хочу получить следующий вывод:

</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>

В ней указаны FullName и LastNameпод одним FullName, а я хочу два FullName.

...