2013-02-06 51 views
0

嗨我試圖顯示符合某些標準的一些事情。在我的xml文件我有一堆的「供應商」如何在xslt中使用表達式<或<來過濾xml文件?

<Suppliers> 
<ASupplier> 
    <SupplierId> 12 </SupplierId> 
    <SupplierName> Amazon </SupplierName> 
    <Email> [email protected] </Email> 
    <StartDate> 01</11</2010 </StartDate> 
    <ContractLength> 6 </ContractLength> 
    <AnnualTurnover> 1233.32 </AnnualTurnover> 
</ASupplier> 
</Suppliers> 

這是我的XSLT文件

<xsl:if test="$SearchType = 'Length'"> 
<xsl:for-each select="ASupplier[$SupplierFilter >= ContractLength]"> 
    <tr> 
    <td> 
    <xsl:value-of select="../SupplierName"/> 
    </td> 
    </tr> 
</xsl:for-each> 
</xsl:if> 

的「檢索類別」是一個參數的代碼。 即時通訊的問題是,即時通訊取回空數據,而不是名稱裏面的表。它返回正確的數字,但沒有任何數據,即我有3個供應商的合同長度爲6或更少,如果我輸入6並搜索它帶回3個表格單元,但沒有任何數據。有什麼想法嗎。 p.s我有函數start-with幷包含使用類似的代碼,並且工作得很好。

回答

1

您顯示的輸入丟失了其XML標記,因此很難看到xslt正在處理什麼(我將它們放回)。

是說,我猜

<xsl:value-of select="../SupplierName"/> 

應該

<xsl:value-of select="SupplierName"/> 

如果SupplierNameASupplier

+0

我的假設是,<>標籤得到了去除一個孩子,和你正在看的是沒有它們的XML。你可以看到它在某種程度上像「/ ASupplier」和「/ Suppliers」這樣的結尾。我認爲這是他們正在尋找的東西。 – AlwaysWrong

+0

如果仔細觀察,可以看到該示例具有打開和關閉標記,但它們以某種方式丟失了尖括號。基於此,我認爲這是一個很好的機會,提問者只需刪除'../'。 – JLRishe

+0

是的,我可以看到它是沒有標記標記的xml,但爲什麼OP刪除了標記,它不能讓我們更容易理解問題。 –

相關問題