içinde aşağıdaki gibidir (örnek) içeren bir değişken olarak adlandırılır satırlar göz önüne alındığında (XSLT 1.0.):XSL deposu düğüm tarafından belirlenen değişken
giriş
<AllResults>
<Result>
<subject>can be filtered by filter 1</subject>
<type>can be filtered by filter 2</type>
<date>can be filtered by filter 3</date>
</Result>
<Result> ...
</Result>
</AllResults>
I 3 filtre değişkenler var. Her filtre için, filtre değişkeni boş değilse, filtreyi yukarıda gösterilen girişe uygulamak istiyorum. Filtrelenen sonucu filtrelerle eşleşen öğeler yeni bir değişkene kaydetmek istiyorum. Aşağıdakileri denedim, ancak bunun hakkında bir hata iletisi (filterResult) "node-set yerine sonuç ağacı" oluyor. Satırlar değişkeni, bir hata ayıklayıcısını kullanarak belirlediğim gibi bir düğüm kümesidir. XSL'in
Bölüm
<xsl:variable name="filterResult"> <xsl:choose> <xsl:when test="$filter1 != '' and $filter2 != '' and $filter3 != ''"> <xsl:copy-of select="$Rows[date=$filter1 and type=$filter2 and subject=$filter3]" /> </xsl:when> <xsl:when test="$filter1 != '' and $filter2 != ''"> <xsl:copy-of select="$Rows[date=$filter1 and type=$filter2]" /> </xsl:when> <xsl:when test="$filter1 != '' and $filter3 != ''"> <xsl:copy-of select="$Rows[date=$filter1 and subject=$filter3]" /> </xsl:when> <xsl:when test="$filter3 != '' and $filter2 != ''"> <xsl:copy-of select="$Rows[type=$filter2 and subject=$filter3]" /> </xsl:when> <xsl:when test="$filter1 != ''"> <xsl:copy-of select="$Rows[date=$filter1]" /> </xsl:when> <xsl:when test="$filter3 != ''"> <xsl:copy-of select="$Rows[subject=$filter3]" /> </xsl:when> <xsl:when test="$filter2 != ''"> <xsl:copy-of select="$Rows[type=$filter2]" /> </xsl:when> <xsl:otherwise> <xsl:copy-of select="$Rows" /> </xsl:otherwise> </xsl:choose> </xsl:variable>
O kopyalamaya karşı bir sonucudur ağacı ve bir düğüm kümesi üretir farkındayım ama benim 3 filtreler gereksinimi verilen bir düğüm kümesi üretmek için NASIL emin değilim yukarıda tarif ettiğim.
Ek Bilgi
ben mümkün koşulların çok şey var çünkü, bir düğüm ayarlamak ama bu beni nasıl yardımcı görmüyorum içeren bir değişken yaratacak<xsl:variable name="me" select="/set/node"/>
gibi bir şey yapabileceğini biliyoruz
(üç filtre verildi).
"$ Satır değişkeni, Result Tree Fragment türünün bir örneğidir." Öyle değil .. Bir düğüm kümesi olduğu için bir hata ayıklayıcı kullanarak zaten doğruladım. "FilterResult", sonuçta bir ağaç parçası olmaktan çıkıyor ve bunun bir düğüm kümesi olmasını istiyorum. – KyleM
@KyleM: "$ Satırlar" bildirimini veya '$ filterResult' kullanımını izlemediniz. Tahmin edemeyiz. –
Btw, bu, xslt 1.0 'dır. Bu, neyi okuduğuma göre bir düğüm kümesi olarak bir sonuç ağacı parçasını işleyemez. – KyleM