У меня есть исходная схема исходного плоского файла, в которой есть только один узел, который будет содержать длинную строку.
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>
Эта карта имеет следующий XSLT.
<xsl:variable name="var:v1" select="userCSharp:StringSubstring(string(Demo/text()) , "1" , "5")" />
<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 , "1" , "5")" />
<xsl:variable name="var:v5" select="userCSharp:LogicalNe(string($var:v4) , "A")" />
<xsl:variable name="var:v6" select="userCSharp:StringSubstring($var:v3 , "6" , "8")" />
<xsl:variable name="var:v7" select="userCSharp:LogicalNe(string($var:v6) , "B")" />
<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.