जावा में XML के साथ कार्य: पार्सिंग के लिए लाइब्रेरी और उपकरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

जावा में XML के साथ कार्य: लाइब्रेरी और उपकरणों का अवलोकन

XML (eXtensible Markup Language) कॉर्पोरेट अनुप्रयोगों, वेब-सेवाओं और कॉन्फ़िगरेशन फ़ाइलों में संरचित डेटा को संग्रहीत और स्थानांतरित करने के लिए प्रमुख प्रारूपों में से एक बना हुआ है। Java XML के साथ कार्य करने के लिए अंतर्निहित और तृतीय-पक्ष लाइब्रेरी का एक समृद्ध सेट प्रदान करता है। इस लेख में, हम मुख्य उपकरणों, उनकी विशेषताओं और उपयोग के उदाहरणों पर विस्तार से चर्चा करेंगे।



XML के साथ कार्य के लिए अंतर्निहित API

मानक Java लाइब्रेरी (Java SE) में XML को पार्स करने और प्रोसेस करने के लिए तीन मुख्य API शामिल हैं:



1. DOM (Document Object Model)

DOM एक API है जो पूरे XML दस्तावेज़ को मेमोरी में एक ट्री संरचना के रूप में लोड करता है। यह तत्वों तक यादृच्छिक पहुँच के लिए सुविधाजनक है, लेकिन बड़ी फ़ाइलों के साथ काम करते समय अधिक संसाधनों की आवश्यकता होती है।

कब उपयोग करें: जब दस्तावेज़ को बार-बार संशोधित करने या इसकी संरचना पर जटिल क्वेरी करने की आवश्यकता हो।



import javax.xml.parsers.*;import org.w3c.dom.*;

public class DomExample { public static void main(String[] args) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse("data.xml");

NodeList books = doc.getElementsByTagName("book"); for (int i = 0; i < books.getLength(); i++) { Element book = (Element) books.item(i); String title = book.getElementsByTagName("title").item(0).getTextContent(); System.out.println("पुस्तक: " + title); } }}


2. SAX (Simple API for XML)

SAX एक इवेंट-संचालित पार्सर है। यह दस्तावेज़ को क्रमिक रूप से पढ़ता है और टैग, विशेषताओं या टेक्स्ट का सामना करने पर हैंडलर विधियों को कॉल करता है। यह मेमोरी में कोई ट्री नहीं बनाता है, इसलिए यह बड़ी फ़ाइलों के लिए आदर्श है।

कब उपयोग करें: विशाल XML फ़ाइलों (जैसे, लॉग या निर्यात डेटा) की स्ट्रीम प्रोसेसिंग के लिए।



import org.xml.sax.*;import org.xml.sax.helpers.*;import javax.xml.parsers.*;

public class SaxExample extends DefaultHandler { public void startElement(String uri, String localName, String qName, Attributes attrs) { if ("book".equals(qName)) { System.out.println("id के साथ पुस्तक मिली: " + attrs.getValue("id")); } }

public static void main(String[] args) throws Exception { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); parser.parse("data.xml", new SaxExample()); }}


3. StAX (Streaming API for XML)

StAX एक स्ट्रीमिंग pull-पार्सर है। SAX के विपरीत, जहाँ इवेंट हैंडलर में "धकेले" जाते हैं, StAX प्रोग्राम को अगला तत्व अनुरोध करने की अनुमति देता है (pull-मॉडल)। यह पार्सिंग प्रक्रिया पर अधिक नियंत्रण देता है।

कब उपयोग करें: जब SAX का लचीलापन चाहिए, लेकिन पढ़ने को रोकने और फिर से शुरू करने की क्षमता के साथ।



import javax.xml.stream.*;

public class StaxExample { public static void main(String[] args) throws Exception { XMLInputFactory factory = XMLInputFactory.newInstance(); XMLStreamReader reader = factory.createXMLStreamReader( new java.io.FileInputStream("data.xml"));

while (reader.hasNext()) { int event = reader.next(); if (event == XMLStreamConstants.START_ELEMENT && "title".equals(reader.getLocalName())) { System.out.println("शीर्षक: " + reader.getElementText()); } } reader.close(); }}


XML को Java-ऑब्जेक्ट्स से जोड़ना: JAXB

JAXB (Java Architecture for XML Binding) XML को Java-ऑब्जेक्ट्स में और वापस (मार्शलिंग/डीमार्शलिंग) बदलने के लिए एक मानक API है। पू

अनुशंसाएँ