我有一个调用webservice来获取数据的页面。屏幕正确连接,我能够显示我期望的数据。现在我需要在xsl中的for-each中编写另一个内部循环,但是我需要传递一个参数来对父数据集进行排序,并且只需要在子视图中显示一个子集。这是我到目前为止的代码块:
这是XML
<xs:element name="ExchangeWantedItemsMeToodUsers">
<xs:complexType>
- <xs:sequence>
<xs:element name="ExchangeWantedId" type="xs:int" minOccurs="0" />
<xs:element name="ExchangeWantedName" type="xs:string" minOccurs="0" />
<xs:element name="MeTooer" type="xs:string" minOccurs="0" />
<xs:element name="MeTooerBankName" type="xs:string" minOccurs="0" />
<xs:element name="DateFulfilled" type="xs:string" minOccurs="0" />
<xs:element name="DateFulfilledUnformated" type="xs:dateTime" minOccurs="0" />
<xs:element name="UserID" type="xs:int" minOccurs="0" />
<xs:element name="FullName" type="xs:string" minOccurs="0" />
<xs:element name="PostedBankName" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element name="ExchangeWantedItemsMeToodUsers1">
- <xs:complexType>
- <xs:sequence>
<xs:element name="ExchangeWantedID" type="xs:int" minOccurs="0" />
<xs:element name="DisplayName" type="xs:string" minOccurs="0" />
<xs:element name="FullName" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
这是xsl
<xsl:for-each select="/root/ExchangeWantedItemsMeToodUsers">
<tr>
<xsl:call-template name="AlternateRowColor" />
<td><xsl:value-of select="ExchangeWantedName" /></td>
<td>
<xsl:for-each select="/root/ExchangeWantedItemsMeToodUsers">
<xsl:value-of select="MeTooer" /> - <xsl:value-of
select="MeTooerBankName" />
</xsl:for-each>
</td>
<td><xsl:value-of select="FullName" /> - <xsl:value-of
select="PostedBankName" /></td>
<td><xsl:value-of select="DateFulfilled" /></td>
</tr>
</xsl:for-each>
答案 0 :(得分:0)
我在这里做了一些假设,因为你的问题太高了。我希望我的距离不会太远。
我相信您正在寻找以下代码段的内容
<xsl:for-each select="/root/ExchangeWantedItemsMeToodUsers[@FullName='xxxxx]">
<xsl:sort select="MeTooer" data-type="text"/>
<xsl:value-of select="MeTooer" /> - <xsl:value-of select="MeTooerBankName" />
</xsl:for-each>
您很可能实际上不需要内部循环来进行过滤和排序。
您可以通过扩展循环指令中已包含的XPath表达式来收紧过滤条件(例如,这里我假设您已经知道您感兴趣的全名的值) - 你是什么的调用你的参数。由于您的问题使该标准保持打开状态,因此我选择了FullName属性。告诉我们有关此额外过滤条件的更多信息如果有的话。
对于排序,有一个专门针对这种情况制作的专用XSLT指令。它应用于由父for-each
选择标准产生的节点集。我再次在这里做了一个假设,并将第一个显示的属性作为排序标准。让我们再次知道你真正想要的是什么。