Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में XML डेटा से किसी भी एट्रिब्यूट का मान कैसे प्राप्त करें?

jQuery के $(xmlString) से XML पार्स करें, फिर .attr() या .find() से एट्रिब्यूट्स/एलिमेंट्स एक्सेस करें।

jQuery के साथ XML पार्सिंग

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    // XML स्ट्रिंग
    var xmlString = '<Game id="101" details="Play the game and win the amount">'
        + '<gameName name="Cricket" content="/localhost/content/game/play/" />'
        + '<gameName name="Tennis" content="/localhost/game/all/scratch/" />'
        + '</Game>';

    // jQuery ऑब्जेक्ट में पार्स करें
    var $xml = $(xmlString);

    // रूट एट्रिब्यूट प्राप्त करें
    console.log("Game ID:", $xml.attr("id"));           // "101"
    console.log("Details:", $xml.attr("details"));      // "Play the game..."

    // चाइल्ड एलिमेंट्स ढूंढें
    var $gameNames = $xml.find("gameName");
    
    $gameNames.each(function() {
        console.log("Name:", $(this).attr("name"));
        console.log("Content:", $(this).attr("content"));
    });
</script>

वेनिला JavaScript (बिना jQuery)

const xmlString = `<Game id="101" details="Play and win">
    <gameName name="Cricket" content="/play/" />
    <gameName name="Tennis" content="/scratch/" />
</Game>`;

// DOMParser से पार्स करें
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlString, "text/xml");

// रूट एट्रिब्यूट
console.log("ID:", xmlDoc.documentElement.getAttribute("id"));

// सभी gameName एलिमेंट्स
const gameNames = xmlDoc.getElementsByTagName("gameName");
for (let elem of gameNames) {
    console.log("Name:", elem.getAttribute("name"));
    console.log("Content:", elem.getAttribute("content"));
}

// XPath के साथ (जटिल क्वेरीज के लिए)
const cricket = xmlDoc.evaluate(
    '//gameName[@name="Cricket"]', 
    xmlDoc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null
).singleNodeValue;

if (cricket) console.log("Cricket content:", cricket.getAttribute("content"));

एरर हैंडलिंग

function parseXMLSafely(xmlString) {
    try {
        const parser = new DOMParser();
        const xmlDoc = parser.parseFromString(xmlString, "text/xml");
        
        // पार्स एरर जांचें
        const parserError = xmlDoc.getElementsByTagName("parsererror");
        if (parserError.length > 0) {
            throw new Error("XML पार्स एरर: " + parserError[0].textContent);
        }
        
        return xmlDoc;
    } catch (error) {
        console.error("XML पार्स विफल:", error);
        return null;
    }
}

चलाने का तरीका

HTML फ़ाइल में jQuery शामिल करके ब्राउज़र में खोलें, या Node.js में xmldom पैकेज के साथ चलाएं।

आउटपुट

Game ID: 101
Details: Play the game and win the amount
Name: Cricket
Content: /localhost/content/game/play/
Name: Tennis
Content: /localhost/game/all/scratch/

महत्वपूर्ण नोट्स

  • XML केस-सेंसिटिव है (gameName ≠ GameName)
  • सेल्फ-क्लोजिंग टैग्स /> से समाप्त होने चाहिए
  • jQuery का $(xmlString) केवल अच्छी तरह से बने XML के लिए काम करता है
  • Node.js में npm install xmldom फिर const { DOMParser } = require('xmldom')
  1. जावास्क्रिप्ट में div से मान प्राप्त करने पर undefined आना? जावास्क्रिप्ट में div से मान प्राप्त करने पर undefined आना?

    इसके लिए document.getElementById().innerHTML का उपयोग करें। जावास्क्रिप्ट कोड निम्नलिखित है: उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> <meta name=viewport content=width=device-width, initial-scale=1.0> <title>Document</title> <lin

  1. JavaScript - href वैल्यू कैसे प्राप्त करें JavaScript - href वैल्यू कैसे प्राप्त करें

    मान लीजिए हमारे पास URL के साथ निम्नलिखित एंकर टैग है: <a class=demo title=get the url href=./mainPage.jsp/1245>href value at console</a> हमें केवल URL वैल्यू चाहिए यानी href एट्रिब्यूट की वैल्यू। इसके लिए, attr() का उपयोग करें: attr(href) उदाहरण निम्नलिखित कोड है: <!DOCTYPE html>

  1. HTML value एट्रिब्यूट HTML value एट्रिब्यूट

    परिचय HTML value एट्रिब्यूट HTML दस्तावेज़ में एक HTML एलिमेंट के प्रारंभिक मान को परिभाषित करता है। इसे button, input, meter, li, option, progress और param HTML एलिमेंट्स पर लागू किया जा सकता है। सिंटैक्स <tagname value=text></tagname> उदाहरण <!DOCTYPE html> <html> <sty