मेरे पास ऐसा कुछ है:
MSXML2_TLB का उपयोग करता है; प्रकार TDocumentType = (dtOrder, dtInvoice, dtStatus, dtError); // और कुछ और, वास्तव में फ़ंक्शन DetermineDocumentType (डॉक्टर: IXMLDOMDocument2): TDocumentType; ... इसे कुछ आसान करना होगा: निर्धारित करें कि किस प्रकार का XML दस्तावेज़ पैरामीटर में शामिल है एक्सएमएल कुछ ऐसा हो सकता है: & lt; आदेश & gt; ... & lt; / आदेश & gt; , & lt; चालान & gt; ... & lt; / इनवॉइस & gt; , & Lt; स्थिति & gt; ... & lt; / स्थिति & gt; , & lt; त्रुटि & gt; ... & lt; / त्रुटि & gt; या कुछ और इन फाइलों की आंतरिक संरचना बहुत समान है इसलिए एक्सएमएल से पहला टैग नाम प्राप्त करने के द्वारा इसका प्रकार निर्धारित करने का एकमात्र विश्वसनीय तरीका है। Doc.nodeName और Doc.baseName काम नहीं करते मैं सिर्फ एक्सएमएल को पाठ के रूप में पढ़ सकता था, टैग नाम निर्धारित करने के लिए इसे कोड से पार्स कर सकता था लेकिन यह एक गंदे चाल है जिसे मैं उपयोग करने से इनकार करता हूं इसलिए मुझे एक विधि की आवश्यकता है जो IXMLDOMDocument2 इंटरफ़ेस के उचित तरीकों के माध्यम से टैग नाम वापस करेगा। इसे और भी बदतर बनाने के लिए, मेरे पास इस फ़ंक्शन के बाहर कोड पर कोई नियंत्रण नहीं है और दूसरी सीमा के रूप में, इस रूट टैग को असंवेदनशील होना होता है, जिससे उपयोग किए जाने वाली चाल (जैसे) नॉन () अप्रभावी होते हैं पिछली डेवलपर्स द्वारा पिछले डेवलपर्स द्वारा किए गए विरासत कोड और गलत फैसले की वजह से यह एक समस्या है (सौभाग्य से, केवल मूल टैग इस प्रोजेक्ट में यह अजीब लगता है।) बीटीडब्लू, यह फ़ंक्शन इसी तरह की फ़ंक्शन को प्रतिस्थापित करने के लिए है, जो कि द डेली डब्ल्यूटीएफ साइट पर अच्छी तरह से करेंगे। यह पहले इंटरफ़ेस से एक्सएमएल को पढ़ सकता था, इसे पूरी तरह से अपरकेस में परिवर्तित कर लेता है और अंत में बहुत संभवतः पॉज़ () फ़ंक्शन कॉल्स को किसी संभावित टैग के लिए चेक कर सकता है। बहुत ही कुशल नहीं, खासकर जब इस कोड को कुछ हज़ारों एक्सएमएल फाइलों पर काम करना है ...
तो, प्रकार IXMLDOMDocument2 के ऑब्जेक्ट में मूल तत्व का टैग नाम कैसे प्राप्त करें? <
मुझे लगता है कि आप क्या खोज रहे हैं
Doc.documentElement.nodeName
Comments
Post a Comment