xslt - Count with conditions of a 2nd list -


एक्सएमएल I: (उदाहरण के लिए शॉपिंग कार्ट, छवि गैलरी)

  & lt; list1 & gt ; & LT; प्रविष्टि & gt; ... & lt; आइटम & gt; & Lt; आइटम आईडी = "1" & gt; & lt; / आइटम & gt; & Lt; आइटम आईडी = "2" & gt; & lt; / item & gt; & Lt; आइटम आईडी = "3" & gt; & lt; / item & gt; & Lt; / आइटम & gt; & Lt; / प्रविष्टि & gt; & Lt; / List1 & gt;  

एक्सएमएल II: (= संबद्ध आइटम)

  & lt; list2 & gt; & Lt; एंट्री आईडी = "1" & gt; ... & lt; दृश्यता & gt; & Lt; आइटम मान = "सार्वजनिक" & gt; सार्वजनिक & lt; / item & gt; & Lt; / दृश्यता & gt; & Lt; / प्रविष्टि & gt; & Lt; एंट्री आईडी = "3" & gt; ... & lt; दृश्यता & gt; & Lt; आइटम मान = "निजी" & gt; निजी & lt; / item & gt; & Lt; / दृश्यता & gt; & Lt; / प्रविष्टि & gt; & Lt; एंट्री आईडी = "5" & gt; ... & lt; दृश्यता & gt; & Lt; आइटम मान = "सार्वजनिक" & gt; सार्वजनिक & lt; / item & gt; & Lt; / दृश्यता & gt; & Lt; / प्रविष्टि & gt; & Lt; / List2 & gt;  

नोटिस: आईडी की सूची 2 मेल हो सकती है या नहीं ...

सूची 1 की वस्तुओं की गिनती कैसे प्राप्त करें, जिसमें सूची 2 और / दृश्यता / आइटम / @ मान = 'सार्वजनिक'?

एक्सएसएलटी 1.0 के साथ आप count (/ सूची 1 / प्रविष्टि / आइटम [@id = दस्तावेज़ ('xml2.xml') / list2 / प्रविष्टि [दृश्यता / आइटम / @ मान = 'सार्वजनिक'] / @ आईडी])

XSLT 2.0 के साथ एक कुंजी

  & lt; xsl: टेम्पलेट नाम = "k1" match = "list2 / entry [visibility / item / @ value = 'public']" उपयोग = "@ आईडी" / & gt;  

और फिर

  गिनती (/ सूची 1 / प्रविष्टि / वस्तु [कुंजी ('k1', @id, दस्तावेज़ ('xml2.xml')) ])  

लुकअप को और अधिक कुशल बनाता है।


Comments