我正在從BPEL流程調用webservice。 webservice接受以下參數:將so-each循環中的計數器變量用於soa BPEL中的XSLT
<xsd:element name="Documents" minOccurs="0" nillable="true"
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Entry" minOccurs="0" nillable="true" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="url" minOccurs="0" nillable="true" type="xsd:string
<xsd:element name="ID" minOccurs="0" nillable="true" type="xsd:string" >
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
我收到的請求有多個條目。所以我使用了一個<for-each>
循環。 <for-each>
循環計數存在的條目數並按照計數循環。例如,如果我有3個條目,則<for-each>
循環會三次調用Web服務(這正是我想要的)。
但每次調用時,它只會傳遞第一個條目。 在調用webservice之前,我使用了一個轉換活動和一個XSLT。我想以這樣一種方式定義XSLT,它將調用當前的計數值。
例如:
if count = 1.. entry 1 is transformed
If count = 2.. entry 2 is transformed.
,我堅持的XSLT低於:我使用的崗位職能,要分配它來計算變量。 當我硬編碼像position() = 1
或position() = 2
,它工作正常,並拉起我需要的條目。但是如何在運行時設置它?
正在使用position()
正確的選項還是可以使用別的東西?
注意:計數最初是在啓動<for-each>
循環時定義的,我將其設置爲根據條目。
對不起,有這麼長的問題,但我希望有人對此有一個答案。
在此先感謝
<tns:Documents>
<xsl:for-each select="/ns0:request/ns0:Documents/ns0:Entry[position()==?????]">
<tns:Entry>
<tns:Url>
<xsl:value-of select="ns0:Url"/>
</tns:Url>
<tns:ID>
<xsl:value-of select="ns0:ID"/>
</tns:ID>
</tns:Entry>
</xsl:for-each>
</tns:Documents>