PHP SimpleXML - خواندن از رشته(PHP SimpleXML - Read From String)

عملکرد PHP simplexml_load_string() برای خواندن داده‌های XML از یک رشته استفاده می‌شود.


فرض کنید متغیری داریم که حاوی داده های XML است، مانند این:




$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend!</body>

</note>";

مثال زیر نحوه استفاده از تابع simplexml_load_string() را نشان می دهد.
خواندن داده های XML از یک رشته:



مثال



<?php
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend!</body>

</note>";


$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
print_r($xml);

?>



خروجی کد بالا این خواهد بود:



SimpleXMLElement Object ( [به] => Tove [از] => Jani [heading] => Reminder [body] => این آخر هفته مرا فراموش نکنید! )

نکته رسیدگی به خطا: از عملکرد libxml برای بازیابی استفاده کنید
تمام خطاهای XML هنگام بارگیری سند و سپس تکرار روی خطاها. را
مثال زیر سعی می کند یک رشته XML شکسته را بارگیری کند:



مثال



<?php
libxml_use_inte
al_errors(true);
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<document>
<user>John Doe</wronguser>
<email>john@example.com</wrongemail>

</document>";

$xml = simplexml_load_string($myXMLData);
if ($xml === false) {
    echo "Failed loading XML: ";
    foreach(libxml_get_errors() as $error) {
        echo "<br>", $error->message;
    }
} else {
    print_r($xml);
}

?>



خروجی کد بالا این خواهد بود:



بارگیری XML انجام نشد:
باز کردن و پایان دادن به عدم تطابق برچسب: خط کاربر 3 و کاربر اشتباه
باز کردن و پایان عدم تطابق برچسب: خط ایمیل 4 و ایمیل غلط