xml - transformation of RSS date in XSLT -
कई आरएसएस-फीड्स से उत्पन्न @ डीमित्र ने एक अच्छा समाधान प्रदान किया, जिसमें उनके जवाब में सप्ताह का दिन शामिल है: यहां सवाल यह है कि कैसे 17 Feb 2009 00:05:25 +0100 इसके अतिरिक्त यह जानने के लिए सुविधाजनक होगा कि कैसे एक अतिरिक्त आरएसएस-नोड को लागू करने के लिए जैसे यदि आपके सभी हालांकि यदि आपके पास पबडेट प्रारूपों का मिश्रण है, और आपके पास दोनों हैं: ऑरगेटिंग एक्सप्रेशंस के प्रारंभिक बिंदुओं को आपके प्रारूप के आधार पर सशर्त होना चाहिए। XSLT 2.0 में आप बस एक xpath यह जांचता है कि क्या कक्ष 3 में रिक्त स्थान है, जो कि के लिए मामला है प्रारूप के बिना सप्ताह के दिन, लेकिन सप्ताह के दिनों के साथ प्रारूप के लिए नहीं, और इसके आधार पर प्रारंभिक बिंदु निर्धारित करता है। XSLT 1.0 में एक्सपेथ में कोई सशर्त अभिव्यक्ति नहीं है, लेकिन आप एक बूलियन अभिव्यक्ति के परिणाम के साथ गुणा करके एक ही परिणाम प्राप्त करें: यह सप्ताह के बिना और उपाध्यक्ष के बिना प्रारूप के लिए पूरी तरह से कथन के लिए यह करना: यहां काम करना सरल संस्करण है: आपके दूसरे प्रश्न के लिए, इसके अलावा यह जानने के लिए सुविधाजनक होगा कि कैसे अतिरिक्त आरएसएस-नोड की तरह या सॉर्ट करने के लिए उदाहरण के लिए परिणामस्वरूप आउटपुट को सॉर्ट किया जाएगा और (या उदा।)। आप आमतौर पर केवल & lt; pubDate & gt; के लिए मूल्य (xml में)
substring () के लिए
pubDate को उस उत्तर के अनुसार अनुकूलित करें जब सप्ताह का दिन
pubDate का हिस्सा नहीं है, तो ऐसा है:
& lt; लिंक & gt; या
& lt; शीर्षक & gt; उदाहरण के परिणामस्वरूप
& lt; pubDate & gt; और
& lt; लिंक & gt; (या उदा।
& lt; title & gt; ) पर सॉर्ट किया जाएगा। फीडबैक के लिए धन्यवाद।
pubDate के पास नहीं है सप्ताह के दिनों में आप केवल प्रत्येक उपस्ट्रिंग के शुरुआती बिंदु से क्रमबद्ध बयान से 5 अवयव लेते हैं:
& lt; xsl: sort डेटा-प्रकार = "संख्या" क्रम = "अवरोही" का चयन करें = "concat (substring ( PubDate, 8,4), $ vMonths [@name = substring (वर्तमान () / pubDate, 4,3)] / @ num, substring (pubDate, 1,2), अनुवाद (पबडेट, 13,8) ':', '')) "/ & gt;
& lt; pubDate & gt; 12 Feb 2009 01:58:03 GMT & lt; / pubDate & gt; & lt; pubDate & gt; मंगल, 13 फरवरी 2010 02:58:03 GMT & lt; / pubDate & gt;
का उपयोग कर सकते हैं यदि फिर से स्टेटमेंट जैसे:
substring (pubDate, यदि (substring (pubDate, 3,1) = '') तो 8 और 13, 4)
substring (pubDate, (substring (pubDate, 3,1) = '') * 8 + (substring (pubDate, 5 , 1) = '') * 13, 4)
1 * 8 + 0 * 13 = 8 की गणना करेगा सप्ताह के दिन के साथ प्रारूप के लिए
0 * 8 + 1 * 13 = 13
& lt; xsl: सॉर्ट डेटा-टाइप = "संख्या" ऑर्डर = "अवरोही" का चयन करें = "कॉन्सैट (सब्टिंग (पबडेट , $ VMonths [@name = substring (वर्तमान () ()) / पबडेट (सबस्ट्रिंग (पबडेट, 3,1) = '') * 8 + (सबस्ट्रिंग (पबडेट, 5,1) = '') * 13, 4) (सबबिंग (पबडेट, 3,1) = '') * 4 + (सबस्ट्रिंग (पबडेट, 5,1) = '') * 9, 3)] / @ num, ऑथिस्ट्रिंग (पबडेट, (उपकेंद्र (पबडेट, 3, 1) = '') * 1 + (substring (pubDate, 5,1) = '') * 6, 2), अनुवाद (उपकथ (pubDate, 13 (substring (pubDate, 3,1) = '') * 13 + (सबस्ट्रिंग (पबडेट, 5,1) = '') * 18, 8), ':', '')) "/>
& lt; xsl: sort select = "title" / & gt; हालांकि तिथि के आधार पर पिछले सॉर्टिंग पर विचार किया जाता है, यह तभी होगा जब आपके पास सटीक समान पबडेट पर 2 अलग शीर्षक होंगे, जो कि असंभव है क्योंकि तारीख में समय भी शामिल है।
Comments
Post a Comment