खोज…


HTML को स्ट्रिंग से पार्स करना

PHP एक डोम स्तर 2 अनुरूप पार्सर लागू करता है, जिससे आप getElementById() या appendChild() जैसे परिचित तरीकों का उपयोग करके HTML के साथ काम कर सकते हैं।

$html = '<html><body><span id="text">Hello, World!</span></body></html>';

$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html);

echo $doc->getElementById("text")->textContent;

आउटपुट:

Hello, World!

ध्यान दें कि PHP HTML के साथ किसी भी समस्या के बारे में चेतावनी का उत्सर्जन करेगा, खासकर यदि आप एक दस्तावेज़ टुकड़ा आयात कर रहे हैं। इन चेतावनियों से बचने के लिए, DOM लाइब्रेरी (libxml) को अपने HTML को आयात करने से पहले libxml_use_internal_errors() कहकर अपनी त्रुटियों को संभालने के लिए libxml_use_internal_errors() । यदि आवश्यक हो तो त्रुटियों को संभालने के लिए आप तब libxml_get_errors() का उपयोग कर सकते हैं।

XPath का उपयोग करना

$html = '<html><body><span class="text">Hello, World!</span></body></html>';

$doc = new DOMDocument();
$doc->loadHTML($html);

$xpath = new DOMXPath($doc);
$span = $xpath->query("//span[@class='text']")->item(0);

echo $span->textContent;

आउटपुट:

Hello, World!

SimpleXML

प्रस्तुतीकरण

  • SimpleXML एक PHP पुस्तकालय है जो XML दस्तावेजों (विशेष रूप से XML डेटा के माध्यम से पढ़ने और पुनरावृत्ति) के साथ काम करने का एक आसान तरीका प्रदान करता है।

  • केवल संयम यह है कि XML दस्तावेज़ को अच्छी तरह से बनाया जाना चाहिए।

प्रक्रियात्मक दृष्टिकोण का उपयोग करके XML को पार्स करना

// Load an XML string
$xmlstr = file_get_contents('library.xml');
$library = simplexml_load_string($xmlstr);

// Load an XML file
$library = simplexml_load_file('library.xml');

// You can load a local file path or a valid URL (if allow_url_fopen is set to "On" in php.ini

OOP दृष्टिकोण का उपयोग कर XML को पार्स करना

// $isPathToFile: it informs the constructor that the 1st argument represents the path to a file,
// rather than a string that contains 1the XML data itself.

// Load an XML string
$xmlstr = file_get_contents('library.xml');
$library = new SimpleXMLElement($xmlstr);

// Load an XML file
$library = new SimpleXMLElement('library.xml', NULL, true);

// $isPathToFile: it informs the constructor that the first argument represents the path to a file, rather than a string that contains 1the XML data itself.

बच्चों और गुण तक पहुँचना

  • जब SimpleXML XML दस्तावेज़ को पार्स करता है, तो यह परिणामी SimpleXMLElement वस्तु के गुणों के लिए अपने सभी XML तत्वों या नोड्स को परिवर्तित करता है।
  • इसके अलावा, यह XML विशेषताओं को एक साहचर्य सरणी में परिवर्तित करता है जिसे उस संपत्ति से एक्सेस किया जा सकता है जहां वे हैं।

जब आप उनके नाम जानते हैं:

$library = new SimpleXMLElement('library.xml', NULL, true);
foreach ($library->book as $book){
    echo $book['isbn'];
    echo $book->title;
    echo $book->author;
    echo $book->publisher;
}
  • इस दृष्टिकोण का मुख्य दोष यह है कि XML दस्तावेज़ में प्रत्येक तत्व और विशेषता के नाम जानना आवश्यक है।

जब आप उनके नाम नहीं जानते (या आप उन्हें जानना नहीं चाहते हैं):

foreach ($library->children() as $child){
    echo $child->getName();
    // Get attributes of this element
    foreach ($child->attributes() as $attr){
        echo ' ' . $attr->getName() . ': ' . $attr;
    }
    // Get children
    foreach ($child->children() as $subchild){
        echo ' ' . $subchild->getName() . ': ' . $subchild;
    }
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow