2010-02-08 13 views
8

बस मैं xsl में निम्नलिखित निष्पादित कर सकता हूं?क्या मैं प्रत्येक के लिए xsl में 'और' ऑपरेटर का उपयोग कर सकता हूं?

<xsl:for-each select="trip/instance[.!=''] and trip/result[.!='']"> 
</xsl:for-each> 

प्रश्न: जब मैं "में चुनिंदा =" का उपयोग करने के लिए-प्रत्येक यह कोड मैं के लिए-प्रत्येक के अंदर उपयोग के लिए मेरी चयनकर्ता का दायरा बदलना है?

उत्तर

7

आप में लिए-प्रत्येक पाश, लेकिन जिस तरह से आप का उल्लेख किया है में नहीं (किया जा रहा है यकीन नहीं वास्तव में क्या हासिल करना चाहते हैं)

उपयोग कर सकते हैं 'और' मैं अपनी आवश्यकताओं के कुछ मान की तरह, या तो

1) आप Trip जिसका दोनों बच्चे संस्थाएं हैं (instance और result) रिक्त नहीं, इस मामले आप इस तरह लिखने के लिए है में के माध्यम से लूप करना चाहते हैं ..

<xsl:for-each select="trip[instance!='' and result!='']> 

यदि कोई उदाहरण और परिणाम शून्य है, तो आपका लूप तत्व, अर्थात् यात्रा में प्रवेश नहीं करता है।


2) आप जिनके मान रिक्त नहीं हैं माता-पिता trip अंदर प्रत्येक instance और result बच्चों के माध्यम से तलाश करना चाहते हैं। इस मामले में आपको and की आवश्यकता नहीं है ..

<xsl:for-each select="trip/instance[.!=''] | trip/result[.!='']"> 

यह काम करेगा।

अब आप अपने प्रश्न का जवाब .. के लिए-प्रत्येक पाश आप चयनकर्ता के दायरे सेट कर सकते हैं साथ
..
के लिए-उदाहरण: मामले में (1), चयनकर्ता के दायरे था "root_name//trip" और मामले में (2) चयनकर्ता के दायरे था "root_name//trip/instance" भी "root_name//trip/result" ..

मुझे आशा है कि, मैं सही ढंग से अपने प्रश्न समझ और यह के रूप में समझा जा सकता दिए ..

6

नहीं, आप select विशेषता में and का उपयोग नहीं कर सकते। | है, जो एक और और तरह का एक या, आप इसके बारे में क्या सोचते हैं पर निर्भर करता है की तरह की तरह तरह का बर्ताव करता है:

आप union ऑपरेटर का उपयोग करना चाहते हैं।

यह आपको नोड्स के दोनों सेटों की एक अलग सूची देगा और उन्हें दस्तावेज़ ऑर्डर में वापस कर देगा जो उन्हें पाता है (सभी instance और फिर सभी result तत्व)।

<xsl:for-each select="trip/instance[.!=''] | trip/result[.!='']"> 
</xsl:for-each> 
for-each संदर्भ प्रत्येक यात्रा के दौरान चयनित नोड्स के प्रत्येक के बीच स्विच करेंगे अंदर

। आप . या current() के साथ वर्तमान नोड तक पहुंच सकते हैं।

+0

यूनिअन ऑपरेटर पर स्पष्टीकरण के लिए +1 .. और के लिए बिंदु "इस पर निर्भर करते हुए कि आप इसे कैसे सोचते हैं" –

+0

@ मैड्स हैंनसेन: धन्यवाद – Zoheir

संबंधित मुद्दे

 संबंधित मुद्दे