لود از رشته (simplexml_load_string)
تابع simplexml_load_string() یک رشته XML را به شیء SimpleXMLElement تبدیل می کند. «رشته (String)» یعنی متن معمولی. با تبدیل، خواندن گره ها خیلی راحت می شود؛ مثل دیدن لیست کلاس به جای متنِ فشرده.
تعریف کوتاه و زمان استفاده
وقتی XML در متغیر است، نه فایل، از این تابع کمک بگیر. سپس عناصر را مستقیم می خوانی و چاپ می کنی. بنابراین کدنویسی مرتب تر می شود.
سینتکس و پارامترها
سینتکس: simplexml_load_string(data, class, options, ns, is_prefix). پارامتر data رشته XML است. options تنظیمات Libxml است. ns پیشوند یا URI نام فضا است. is_prefix مشخص می کند ns پیشوند است یا URI.
مثال 1: تبدیل رشته XML به شیء و چاپ
<?php
$note = <<<XML
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Do not forget me this weekend!</body>
</note>
XML;
$xml = simplexml_load_string($note);
print_r($xml);
?>
مثال 2: دسترسی مستقیم به عناصر
<?php
$note = <<<XML
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Do not forget me this weekend!</body>
</note>
XML;
$xml = simplexml_load_string($note);
echo $xml->to . "<br>";
echo $xml->from . "<br>";
echo $xml->heading . "<br>";
echo $xml->body;
?>
مثال 3: نام ریشه و پیمایش فرزندها
<?php
$note = <<<XML
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Do not forget me this weekend!</body>
</note>
XML;
$xml = simplexml_load_string($note);
echo $xml->getName() . "<br>";
foreach ($xml->children() as $child) {
echo $child->getName() . ": " . $child . "<br>";
}
?>
گام های عملی سریع
- یک رشته XML در متغیر بساز.
- با
simplexml_load_string()آن را لود کن. - با خصیصه ها، مقادیر را چاپ کن.
نکته ها و ارتباط ها
نکته: اگر XML در فایل است، از simplexml_load_file استفاده کن.
نکته: برای تبدیل خروجی به متن XML، از saveXML کمک بگیر.
نکته: برای کار با DOM موجود، از simplexml_import_dom استفاده کن.
هشدار: اگر رشته بدساخت باشد، مقدار FALSE می گیری. ورودی را بررسی کن.
جمع بندی سریع
- XML در متغیر را شیء می کند.
- خواندن گره ها بسیار ساده می شود.
- برای فایل ها، تابع مخصوص فایل را بزن.
- خروجی نیاز داشتی، از saveXML کمک بگیر.