मेरे अनुभव में, एक्सएसएलटी अधिक संक्षिप्त और पठनीय है जब आप मुख्य रूप से पुन: व्यवस्थित करने और मौजूदा एक्सएमएल तत्वों का चयन करने के लिए काम कर रहे हैं। XPath संक्षिप्त और समझने में आसान है, और एक्सएमएल सिंटैक्स XElement
और XAttribute
कथन के साथ आपके कोड को कूड़े हुए से बचाता है। एक्सएसएलटी एक एक्सएमएल-पेड़ भाषा बदलने के रूप में ठीक काम करता है।
हालांकि, यह स्ट्रिंग हैंडलिंग खराब है, लूपिंग अनजान है, और subroutines की कोई सार्थक अवधारणा नहीं है - आप दूसरे ट्रांसफॉर्म के आउटपुट को बदल नहीं सकते हैं।
तो, यदि आप वास्तव में तत्व और विशेषता सामग्री के साथ बेवकूफ़ बनाना चाहते हैं, तो यह जल्दी से कम हो जाता है। संरचना का सामान्यीकरण करने के लिए आकस्मिक रूप से - एक्सएसएलटी दोनों का उपयोग करने में कोई समस्या नहीं है (कहें, यह सुनिश्चित करने के लिए कि सभी table
तत्वों में tbody
तत्व हैं), और linq-to-xml इसे समझने के लिए। प्राथमिकतापूर्ण सशर्त मिलान संभावनाओं का मतलब है कि कई समान लेकिन विशिष्ट मैचों से निपटने के दौरान एक्सएसएलटी का उपयोग करना आसान है। Xslt दस्तावेज़ सरलीकरण पर अच्छा है, लेकिन इसमें अभी भी बहुत अधिक बुनियादी सुविधाएं अनुपलब्ध हैं।
लिंक-टू-एक्सएमएल बैंडवागन पर पूरी तरह से दिल से कूदने के बाद, मैं कहूंगा कि एक्सएसएलटी के साथ यह कम ओवरलैप है जो पहली नज़र में दिख सकता है। (और मैं .NET के लिए एक एक्सएसएलटी 2.0/XQuery 1.0 कार्यान्वयन को सकारात्मक रूप से देखना पसंद करूंगा)।
प्रदर्शन के संदर्भ में, दोनों तकनीक तेजी से हैं। वास्तव में, चूंकि धीमी परिचालनों को व्यक्त करना बहुत मुश्किल है, इसलिए आप एक्सएसएलटी में धीमे मामले को धीमा कर सकते हैं (जब तक आप रिकर्सन के साथ खेलना शुरू नहीं करते ...)। इसके विपरीत, LINQ से Xml पावर भी इसे धीमा कर सकता है: किसी भी आंतरिक-लूप में किसी भी भारी वजन .NET ऑब्जेक्ट का उपयोग करें और आपको एक उभरती हुई प्रदर्शन समस्या है।
जो भी आप करते हैं, एक्सएसएलटी का दुरुपयोग करने की कोशिश न करें, तर्क के सबसे सरल लेकिन कुछ भी करने के लिए इसका उपयोग करके: यह तरीका अधिक शब्दावली और बराबर सी # की तुलना में बहुत कम पठनीय है। यदि आपको तर्क की एक गुच्छा की आवश्यकता है (date > DateTime.Now ? "will be" : "has"
जैसे साधारण चीजें एक्सएसएलटी में भारी फूला हुआ हैक्स बनती हैं) और आप एक्सएसएलटी और लिंक दोनों एक्सएमएल का उपयोग नहीं करना चाहते हैं, तो लिंक का उपयोग करें।
स्रोत
2009-08-25 13:17:17
विजुअल स्टूडियो xsltc.exe लाता है (सुनिश्चित नहीं है कि यह पहले से ही मानक संस्करण के साथ शामिल है) जो आपको अपने एक्सएसएलटी से एक असेंबली (इंटरमीडिएट भाषा में डीएल) संकलित करने की अनुमति देता है। तो रनटाइम पर एक्सएसएलटी संकलन के लिए जरूरी नहीं है। –
एक्सएसएलटी मेरी राय में डीबग करने का दर्द है। एक्सएमएल से लिंक अधिक डिबगबल है ... यदि आप अपने जंजीर बयान तोड़ते हैं। –
@ फ्रैंक: क्या आपने वीएस 2008 के एक्सएसएलटी डीबगर (या अन्य एक्सएसएलटी आईडीई जैसे ऑक्सीजन या अल्टोवा एक्सएमएलएसपी) की जांच की है? वे आपको अपने एक्सएसएल ट्रांसफॉर्म के माध्यम से कदम उठाने देते हैं जैसे कि आप सी # या जावा कोड से आगे बढ़ेंगे। –