Python 3.7

xml.sax.xmlreader - XML पार्सर के लिए इंटरफ़ेस




python

xml.sax.xmlreader - XML ​​पार्सर के लिए इंटरफ़ेस

स्रोत कोड: Lib/xml/sax/xmlreader.py

SAX पार्सर XMLReader इंटरफ़ेस लागू करते हैं। वे एक पायथन मॉड्यूल में कार्यान्वित किए जाते हैं, जो एक फ़ंक्शन create_parser() प्रदान करना चाहिए। यह फ़ंक्शन xml.sax.make_parser() द्वारा नए पार्सर ऑब्जेक्ट बनाने के लिए कोई तर्क नहीं दिया जाता है।

class xml.sax.xmlreader.XMLReader

बेस क्लास जो SAX पार्सर्स को विरासत में मिल सकता है।

class xml.sax.xmlreader.IncrementalParser

कुछ मामलों में, एक इनपुट स्रोत को एक बार में पार्स नहीं करना वांछनीय है, लेकिन दस्तावेज़ के टुकड़े को खिलाने के लिए जैसा कि वे उपलब्ध हैं। ध्यान दें कि पाठक आम तौर पर पूरी फाइल को नहीं पढ़ेगा, लेकिन इसे चंक्स में भी पढ़ सकता है; अभी भी parse() पूरे दस्तावेज़ के संसाधित होने तक वापस नहीं आएगा। तो इन इंटरफेस का उपयोग किया जाना चाहिए यदि parse() के अवरुद्ध व्यवहार वांछनीय नहीं है।

जब पार्सर तुरंत हो जाता है तो यह तुरंत फ़ीड विधि से डेटा स्वीकार करना शुरू करने के लिए तैयार है। पार्स करने के बाद रीसेट विधि को बंद करने के लिए कॉल के साथ समाप्त हो गया है, पार्सर को नए डेटा को स्वीकार करने के लिए तैयार करने के लिए बुलाया जाना चाहिए, या तो फ़ीड से या पार्स विधि का उपयोग करके।

ध्यान दें कि इन तरीकों को पार्स करने के दौरान नहीं बुलाया जाना चाहिए, अर्थात, पार्स के बाद बुलाया गया है और वापस आने से पहले।

डिफ़ॉल्ट रूप से, वर्ग SAX 2.0 ड्राइवर लेखकों की सुविधा के रूप में IncrementalParser इंटरफ़ेस के फ़ीड, बंद और रीसेट तरीकों का उपयोग करके XMLReader इंटरफ़ेस के पार्स तरीके को भी लागू करता है।

class xml.sax.xmlreader.Locator

दस्तावेज़ स्थान के साथ SAX ईवेंट को जोड़ने के लिए इंटरफ़ेस। एक लोकेटर ऑब्जेक्ट डॉक्यूमेंटहैंडलर विधियों के कॉल के दौरान ही वैध परिणाम लौटाएगा; किसी भी समय, परिणाम अप्रत्याशित हैं। यदि जानकारी उपलब्ध नहीं है, तो विधियाँ वापस None आ सकती हैं।

class xml.sax.xmlreader.InputSource(system_id=None)

संस्थाओं को पढ़ने के लिए XMLReader द्वारा आवश्यक जानकारी का इनकैप्सुलेशन।

इस वर्ग में सार्वजनिक पहचानकर्ता, सिस्टम पहचानकर्ता, बाइट स्ट्रीम (संभवत: वर्ण एन्कोडिंग जानकारी के साथ) और / या किसी इकाई के चरित्र स्ट्रीम के बारे में जानकारी शामिल हो सकती है।

अनुप्रयोग XMLReader.parse XMLReader.parse() पद्धति में उपयोग के लिए और EntityResolver.resolveEntity से लौटने के लिए इस वर्ग की वस्तुओं का निर्माण करेंगे।

एक InputSource अनुप्रयोग के अंतर्गत आता है, InputSource को InputSource ऑब्जेक्ट को अनुप्रयोग से इसे संशोधित करने की अनुमति नहीं है, हालांकि यह प्रतियां बना सकता है और उन को संशोधित कर सकता है।

class xml.sax.xmlreader.AttributesImpl(attrs)

यह Attributes इंटरफ़ेस का कार्यान्वयन है (अनुभाग को एट्रीब्यूट इंटरफ़ेस देखें )। यह एक डिक्शनरी जैसी वस्तु है जो एक startElement() कॉल में तत्व विशेषताओं का प्रतिनिधित्व करती है। सबसे उपयोगी शब्दकोश संचालन के अलावा, यह इंटरफ़ेस द्वारा वर्णित कई अन्य तरीकों का समर्थन करता है। इस वर्ग की वस्तुओं को पाठकों द्वारा त्वरित किया जाना चाहिए; Attrs एक शब्दकोश जैसी वस्तु होनी चाहिए, जिसमें विशेषता नामों से मानचित्रण करने वाले गुण मान हों।

class xml.sax.xmlreader.AttributesNSImpl(attrs, qnames)

Namespace- AttributesImpl का जागरूक संस्करण, जो startElementNS() को पास किया जाएगा। यह AttributesImpl से लिया गया है, लेकिन नाम के दो- टुपल्स के रूप में विशेषता नामों को समझता है और स्थानीय नाम । इसके अलावा, यह योग्य नाम की अपेक्षा कई तरीके प्रदान करता है जैसा कि वे मूल दस्तावेज में दिखाई देते हैं। यह वर्ग AttributesNS इंटरफ़ेस को लागू करता है (अनुभाग देखें AttributesNS इंटरफ़ेस )।

XMLReader ऑब्जेक्ट्स

XMLReader इंटरफ़ेस निम्न विधियों का समर्थन करता है:

XMLReader.parse(source)

SAX ईवेंट का निर्माण करते हुए, एक इनपुट स्रोत की प्रक्रिया करें। स्रोत ऑब्जेक्ट एक सिस्टम आइडेंटिफ़ायर हो सकता है (इनपुट स्रोत की पहचान करने वाला एक स्ट्रिंग - आम तौर पर एक फ़ाइल नाम या URL), एक फ़ाइल जैसी ऑब्जेक्ट या एक इनपुट स्रोत। जब XMLReader.parse() लौटता है, तो इनपुट पूरी तरह से संसाधित हो जाता है, और पार्सर ऑब्जेक्ट को त्याग या रीसेट किया जा सकता है।

संस्करण 3.5 में बदला: चरित्र धाराओं का जोड़ा समर्थन।

XMLReader.getContentHandler()

वर्तमान ContentHandler लौटाएं।

XMLReader.setContentHandler(handler)

वर्तमान ContentHandler सेट करें। यदि कोई ContentHandler सेट नहीं है, तो सामग्री ईवेंट को छोड़ दिया जाएगा।

XMLReader.getDTDHandler()

वर्तमान DTDHandler लौटें।

XMLReader.setDTDHandler(handler)

वर्तमान DTDHandler सेट करें। यदि कोई DTDHandler सेट नहीं है, तो DTD ईवेंट को छोड़ दिया जाएगा।

XMLReader.getEntityResolver()

वर्तमान EntityResolver

XMLReader.setEntityResolver(handler)

वर्तमान EntityResolver सेट करें। यदि कोई EntityResolver सेट नहीं है, तो बाहरी इकाई को हल करने के प्रयासों से इकाई के लिए सिस्टम पहचानकर्ता खोलने में परिणाम होगा, और यदि यह उपलब्ध नहीं है तो विफल हो जाएगा।

XMLReader.getErrorHandler()

वर्तमान ErrorHandler लौटें।

XMLReader.setErrorHandler(handler)

वर्तमान त्रुटि हैंडलर सेट करें। यदि कोई ErrorHandler सेट नहीं है, तो त्रुटियों को अपवाद के रूप में उठाया जाएगा, और चेतावनी मुद्रित की जाएगी।

XMLReader.setLocale(locale)

किसी एप्लिकेशन को त्रुटियों और चेतावनियों के लिए स्थान निर्धारित करने की अनुमति दें।

SAX पार्सर त्रुटियों और चेतावनियों के लिए स्थानीयकरण प्रदान करने के लिए आवश्यक नहीं हैं; यदि वे अनुरोध किए गए स्थान का समर्थन नहीं कर सकते हैं, हालांकि, उन्हें SAX अपवाद उठाना होगा। आवेदन एक पार्स के बीच में एक स्थानीय परिवर्तन का अनुरोध कर सकते हैं।

XMLReader.getFeature(featurename)

सुविधा करतब के लिए वर्तमान सेटिंग लौटें। यदि सुविधा पहचानी नहीं जाती है, तो SAXNotRecognizedException को उठाया जाता है। जाने-माने करतब दिखाने वाले मॉड्यूल xml.sax.handler में सूचीबद्ध हैं।

XMLReader.setFeature(featurename, value)

मूल्य के लिए करतब का नाम निर्धारित करें। यदि सुविधा पहचानी नहीं जाती है, तो SAXNotRecognizedException को उठाया जाता है। यदि सुविधा या इसकी सेटिंग पार्सर द्वारा समर्थित नहीं है, तो SAXNotSupportedException को उठाया जाता है।

XMLReader.getProperty(propertyname)

प्रॉपर्टी प्रॉपर्टी के लिए वर्तमान सेटिंग लौटाएं। यदि संपत्ति मान्यता प्राप्त नहीं है, तो एक SAXNotRecognizedException उठाया जाता है। प्रसिद्ध संपत्ति के नाम मॉड्यूल xml.sax.handler में सूचीबद्ध हैं।

XMLReader.setProperty(propertyname, value)

मान के लिए प्रॉपर्टीनाम सेट करें। यदि संपत्ति मान्यता प्राप्त नहीं है, तो SAXNotRecognizedException उठाया जाता है। यदि संपत्ति या इसकी सेटिंग पार्सर द्वारा समर्थित नहीं है, तो SAXNotSupportedException को उठाया जाता है।

IncrementalParser ऑब्जेक्ट

IncrementalParser उदाहरण निम्नलिखित अतिरिक्त तरीके प्रदान करते हैं:

IncrementalParser.feed(data)

डेटा का एक हिस्सा संसाधित करें

IncrementalParser.close()

दस्तावेज़ के अंत मान लें। यह अच्छी तरह से गठित स्थितियों की जांच करेगा जो केवल अंत में जांची जा सकती हैं, हैंडलर को आमंत्रित कर सकते हैं, और पार्सिंग के दौरान आवंटित संसाधनों को साफ कर सकते हैं।

IncrementalParser.reset()

पार्सर को रीसेट करने के लिए करीब बुलाया जाने के बाद इस विधि को बुलाया जाता है ताकि वह नए दस्तावेजों को पार्स करने के लिए तैयार हो। कॉलिंग रीसेट के बिना बंद होने के बाद पार्स या फीड कॉल करने के परिणाम अपरिभाषित हैं।

लोकेटर ऑब्जेक्ट

Locator उदाहरण ये तरीके प्रदान करते हैं:

Locator.getColumnNumber()

उस स्तंभ संख्या को लौटाएँ जहाँ वर्तमान घटना शुरू होती है।

Locator.getLineNumber()

वर्तमान घटना शुरू होने पर लाइन नंबर वापस करें।

Locator.getPublicId()

वर्तमान घटना के लिए सार्वजनिक पहचानकर्ता लौटें।

Locator.getSystemId()

वर्तमान घटना के लिए सिस्टम पहचानकर्ता लौटें।

InputSource ऑब्जेक्ट्स

InputSource.setPublicId(id)

इस InputSource के सार्वजनिक पहचानकर्ता को सेट करता है।

InputSource.getPublicId()

इस InputSource के सार्वजनिक पहचानकर्ता को InputSource

InputSource.setSystemId(id)

इस InputSource के सिस्टम पहचानकर्ता को सेट करता है।

InputSource.getSystemId()

इस InputSource के सिस्टम पहचानकर्ता को InputSource

InputSource.setEncoding(encoding)

इस InputSource के वर्ण एन्कोडिंग को सेट करता है।

एन्कोडिंग एक XML एन्कोडिंग घोषणा (XML सिफारिश के खंड 4.3.3 देखें) के लिए एक स्ट्रिंग स्वीकार्य होनी चाहिए।

InputSource की एन्कोडिंग विशेषता को अनदेखा किया जाता है यदि InputSource में एक वर्ण स्ट्रीम भी होती है।

InputSource.getEncoding()

इस InputSource का वर्ण एन्कोडिंग प्राप्त करें।

InputSource.setByteStream(bytefile)

इस इनपुट स्रोत के लिए बाइट स्ट्रीम (एक बाइनरी फ़ाइल ) सेट करें।

SAX पार्सर इसे अनदेखा करेगा यदि कोई निर्दिष्ट चरित्र स्ट्रीम है, लेकिन यह URI कनेक्शन को खोलने के लिए प्राथमिकता में बाइट स्ट्रीम का उपयोग करेगा।

यदि एप्लिकेशन बाइट स्ट्रीम के वर्ण एन्कोडिंग को जानता है, तो उसे इसे सेटकोडिंग विधि से सेट करना चाहिए।

InputSource.getByteStream()

इस इनपुट स्रोत के लिए बाइट स्ट्रीम प्राप्त करें।

GetEncoding विधि इस बाइट स्ट्रीम के लिए वर्ण एन्कोडिंग, या None अज्ञात होने पर वापस कर देगी।

InputSource.setCharacterStream(charfile)

इस इनपुट स्रोत के लिए चरित्र स्ट्रीम (एक पाठ फ़ाइल ) सेट करें।

यदि कोई वर्ण स्ट्रीम निर्दिष्ट है, तो SAX पार्सर किसी भी बाइट स्ट्रीम की उपेक्षा करेगा और सिस्टम पहचानकर्ता के लिए एक URI कनेक्शन को खोलने का प्रयास नहीं करेगा।

InputSource.getCharacterStream()

इस इनपुट स्रोत के लिए चरित्र स्ट्रीम प्राप्त करें।

Attributes इंटरफ़ेस

Attributes ऑब्जेक्ट मैपिंग प्रोटोकॉल के एक हिस्से को लागू करते हैं, जिसमें विधियों की copy() , get() , __contains__() , items() , keys() और values() । निम्नलिखित विधियाँ भी प्रदान की गई हैं:

Attributes.getLength()

विशेषताओं की संख्या लौटाएं।

Attributes.getNames()

विशेषताओं के नाम वापस करें।

Attributes.getType(name)

विशेषता नाम का प्रकार लौटाता है, जो सामान्य रूप से 'CDATA'

Attributes.getValue(name)

विशेषता नाम का मान लौटाएं।

AttributesNS इंटरफ़ेस

यह इंटरफ़ेस Attributes इंटरफ़ेस का एक उपप्रकार है (देखें अनुभाग इंटरफ़ेस विशेषताएँ )। उस इंटरफ़ेस द्वारा समर्थित सभी विधियाँ AttributesNS ऑब्जेक्ट पर भी उपलब्ध हैं।

निम्नलिखित विधियाँ भी उपलब्ध हैं:

AttributesNS.getValueByQName(name)

एक योग्य नाम के लिए मान लौटाएं।

AttributesNS.getNameByQName(name)

योग्य नाम के लिए (namespace, localname) जोड़ी लौटें।

AttributesNS.getQNameByName(name)

(namespace, localname) जोड़ी के लिए योग्य नाम (namespace, localname)

AttributesNS.getQNames()

सभी विशेषताओं के योग्य नाम लौटाएं।