TypeScript में XML के साथ काम करना: पार्सिंग और निर्माण के लिए लाइब्रेरी

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

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

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

TypeScript में XML के साथ काम करना: लाइब्रेरी और व्यावहारिक उदाहरण

XML (eXtensible Markup Language) कॉर्पोरेट सिस्टम, कॉन्फ़िगरेशन फ़ाइलों और वेब सेवाओं (SOAP, RSS/Atom) में डेटा आदान-प्रदान के लिए एक महत्वपूर्ण फ़ॉर्मेट है। TypeScript में, स्टैटिक टाइपिंग के कारण, XML के साथ काम करना अधिक सुरक्षित और पूर्वानुमानित हो जाता है। इस लेख में, हम TypeScript में XML के साथ काम करने के लिए तीन मुख्य लाइब्रेरी देखेंगे: fast-xml-parser, xml2js और xmlbuilder2। आप सीखेंगे कि XML को कैसे पार्स करें, XML दस्तावेज़ कैसे बनाएं और उनकी संरचना को कैसे मान्य करें।

1. इंस्टॉलेशन और सेटअप

शुरू करने के लिए, npm के माध्यम से एक या अधिक लाइब्रेरी इंस्टॉल करें:

npm install fast-xml-parser xml2js xmlbuilder2
npm install -D @types/xml2js  // xml2js के लिए टाइप्स (fast-xml-parser में टाइप्स बिल्ट-इन हैं)

2. fast-xml-parser के साथ XML पार्सिंग

fast-xml-parser JavaScript/TypeScript में XML पार्स करने के लिए सबसे तेज़ लाइब्रेरी है। यह एट्रिब्यूट, नेमस्पेस को सपोर्ट करती है और XML को JSON में बदल सकती है।

बेसिक पार्सिंग

import { XMLParser } from 'fast-xml-parser';

const xmlString = `<bookstore>
  <book category="fiction">
    <title>गुनाहों का देवता</title>
    <author>धर्मवीर भारती</author>
    <price currency="INR">500</price>
  </book>
</bookstore>`;

const parser = new XMLParser({
  ignoreAttributes: false,  // एट्रिब्यूट को संरक्षित करें
  attributeNamePrefix: '@_', // एट्रिब्यूट के लिए प्रीफ़िक्स
});

const result = parser.parse(xmlString);
console.log(result);

परिणाम एक ऑब्जेक्ट होगा:

{
  bookstore: {
    book: {
      '@_category': 'fiction',
      title: 'गुनाहों का देवता',
      author: 'धर्मवीर भारती',
      price: {
        '@_currency': 'INR',
        '#text': '500'
      }
    }
  }
}

टाइपिंग के साथ पार्सिंग

interface Book {
  '@_category': string;
  title: string;
  author: string;
  price: {
    '@_currency': string;
    '#text': number;
  };
}

interface Bookstore {
  bookstore: {
    book: Book | Book[];
  };
}

const typedResult = parser.parse(xmlString) as Bookstore;
console.log(typedResult.bookstore.book);

3. xml2js के साथ XML पार्सिंग

xml2js एक लाइब्रेरी है जिसमें प्रोसेस-फ़ंक्शन और कस्टम ट्रांसफ़ॉर्मेशन जैसी उन्नत सुविधाएँ हैं। यह एसिंक्रोनस रूप से काम करती है।

एसिंक्रोनस पार्सिंग

import { parseStringPromise } from 'xml2js';

interface XmlBook {
  $: { category: string };
  title: string[];
  author: string[];
  price: Array<{ $: { currency: string }, _: string }>;
}

async function parseXmlData(xml: string): Promise<void> {
  try {
    const result = await parseStringPromise(xml, {
      explicitArray: false,  // सिंगल एलिमेंट को ऐरे में न लपेटें
      attrkey: '$',          // एट्रिब्यूट के लिए की
      charkey: '_'           // टेक्स्ट कंटेंट के लिए की
    });
    
    const book = result.bookstore.book as XmlBook;
    console.log(`किताब: ${book.title}, लेखक: ${book.author}`);
    console.log(`कीमत: ${book.price._} ${book.price.$.currency}`);
  } catch (error) {
    console.error('XML पार्सिंग में त्रुटि:', error);
  }
}

parseXmlData(xmlString);

4. xmlbuilder2 के साथ XML बनाना

xmlbuilder2 TypeScript सपोर्ट के साथ XML दस्तावेज़ बनाने के लिए एक आधुनिक लाइब्रेरी है। यह चेनिंग API और ऑटोमैटिक एस्केपिंग प्रदान करती है।

सरल XML बनाना

import { create } from 'xmlbuilder2';

const xml = create({ version: '1.0', encoding: 'UTF-8' })
  .ele('catalog')
    .ele('book', { id: '1', category: 'fiction' })
      .ele('title').txt('गोदान').up()
      .ele('author').txt('मुंशी प्रेमचंद').up()
      .ele('price', { currency: 'INR' }).txt('800').up()
    .up()
    .ele('book', { id: '2'                    

अनुशंसाएँ