2011-12-19 7 views
2

У меня есть вход какс помощью XSLT functoid

<Loop2300> 
    <HD></HD> 
    <DTP> 
     <DTP1></DTP1> 
     <DTP2></DTP2> 
     <DTP3></DTP3> 
    </DTP> 
    <DTP> 
     <DTP1></DTP1> 
     <DTP2></DTP2> 
     <DTP3></DTP3> 
    </DTP> 
</Loop2300> 
<Loop2300> 
    <HD></HD> 
    <DTP> 
     <DTP1></DTP1> 
     <DTP2></DTP2> 
     <DTP3></DTP3> 
    </DTP> 
    <DTP> 
     <DTP1></DTP1> 
     <DTP2></DTP2> 
     <DTP3></DTP3> 
    </DTP> 
</Loop2300> 

Я помещаю значение всех DTP в SQL таблице. Наряду с DTP у меня есть один элемент id в схеме назначения, где я должен указать порядковый номер HD.

Так будет выводить так:

1 DTP1 DTP2 DTP3 

1  DTP1 DTP2 DTP3 

2 DTP1 DTP2 DTP3 

2 DTP1 DTP2 DTP3 

Я использую XSLT functoid шаблон встроенный XSLT вызова.

Внутри что я использую

<xsl:template> 
    <xsl:for-each select="TS834_2300_Loop/HD_HealthCoverage"> 
     <xsl:number value="position()" format="1. "/> 
    </xsl:for-each> 
</xsl:template> 

кода без входа и один выход на Id

Но ее давая ошибка преобразования неудачу.

Итак, какое изменение мне нужно, чтобы получить соответствующий идентификатор?

+1

Какое сообщение об ошибке для ошибки преобразования? Зачем вам это нужно с помощью функционального элемента Xslt Call Template? Вы можете получить порядковый номер просто с помощью функционала Index. – Filburt

+0

Я думаю, что индекс functoid doe не дает порядковый номер, он дает только первое содержимое последовательности справа .... или это также номер последовательности giv. ... Eroror не мог преобразовать – user1104946

ответ

2

Попробуйте подключить свой исходный узел <HD> к http://i.msdn.microsoft.com/dynimg/IC161727.gifIteration functoid.

Чтобы свести ваши значения ниже <DTP>, вам понадобится http://i.msdn.microsoft.com/dynimg/IC150357.gifTable Looping functoid.

У меня нет моей машины BizTalk dev, готовой прямо сейчас, чтобы построить полный прототип, но это должно дать начало отправной точке.

+0

Спасибо, Filburt помог мне решить проблему. – user1104946

Смежные вопросы