PHP и XML
Продолжаю свою подготовку к Zend exam. Zend Certification Study Guide (могу поделиться, кому нужно :), текущая тема – XML and Web Services.
PHP 5 предоставляет отличные средства для работы с XML документами. Одной из этих библиотек является SimpleXML.
Все объекты, созданные SimpleXML, являются экземплярами класса SimpleXMLElement. Рассмотрим на примере загрузку XML документа. У нас есть XML файл с информацией о продуктах в магазине следующего содержания (store.xml):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<span style='color:#7f0055; '><?</span><span style='color:#7f0055; '>xml</span> <span style='color:#7f0055; '>version</span>="1.0" <span style='color:#7f0055; '>encoding</span>=<span style='color:#2a00ff; '>"UTF-8"</span> <span style='color:#7f0055; '>?></span> <span style='color:#7f0055; '><</span><span style='color:#7f0055; '>store</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '><</span><span style='color:#7f0055; '>sku</span> id=<span style='color:#2a00ff; '>"</span><span style='color:#2a00ff; '>7705</span><span style='color:#2a00ff; '>"</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '><</span><span style='color:#7f0055; '>name</span><span style='color:#7f0055; '>></span>iPod classic<span style='color:#7f0055; '></</span><span style='color:#7f0055; '>name</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '><</span><span style='color:#7f0055; '>price</span><span style='color:#7f0055; '>></span>330<span style='color:#7f0055; '></</span><span style='color:#7f0055; '>price</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '><</span><span style='color:#7f0055; '>ean</span><span style='color:#7f0055; '>></span>0002520190555<span style='color:#7f0055; '></</span><span style='color:#7f0055; '>ean</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '></</span><span style='color:#7f0055; '>sku</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '><</span><span style='color:#7f0055; '>sku</span> id=<span style='color:#2a00ff; '>"</span><span style='color:#2a00ff; '>1139</span><span style='color:#2a00ff; '>"</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '><</span><span style='color:#7f0055; '>name</span><span style='color:#7f0055; '>></span>ASUS A626<span style='color:#7f0055; '></</span><span style='color:#7f0055; '>name</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '><</span><span style='color:#7f0055; '>price</span><span style='color:#7f0055; '>></span>310<span style='color:#7f0055; '></</span><span style='color:#7f0055; '>price</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '><</span><span style='color:#7f0055; '>ean</span><span style='color:#7f0055; '>></span>0502770290391<span style='color:#7f0055; '></</span><span style='color:#7f0055; '>ean</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '></</span><span style='color:#7f0055; '>sku</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '><</span><span style='color:#7f0055; '>sku</span> id=<span style='color:#2a00ff; '>"</span><span style='color:#2a00ff; '>783</span><span style='color:#2a00ff; '>"</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '><</span><span style='color:#7f0055; '>name</span><span style='color:#7f0055; '>></span>Sony iBook<span style='color:#7f0055; '></</span><span style='color:#7f0055; '>name</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '><</span><span style='color:#7f0055; '>price</span><span style='color:#7f0055; '>></span>300<span style='color:#7f0055; '></</span><span style='color:#7f0055; '>price</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '><</span><span style='color:#7f0055; '>ean</span><span style='color:#7f0055; '>></span>4506790441392<span style='color:#7f0055; '></</span><span style='color:#7f0055; '>ean</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '></</span><span style='color:#7f0055; '>sku</span><span style='color:#7f0055; '>></span> <span style='color:#7f0055; '></</span><span style='color:#7f0055; '>store</span><span style='color:#7f0055; '>></span> |
Загрузить XML документ можно несколькими способами. Первый способ предполагает использование функций simplexml_load_string и simplexml_load_file, которые возвращают объект SimpleXMLElement.
1 2 3 4 |
<span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;"><?php</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$xmlstr</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">=</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">file_get_contents</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'store.xml'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$store</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">=</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">simplexml_load_string</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$xmlstr</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;">?></span> |
1 2 3 |
<span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;"><?php</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$store</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">=</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">simplexml_load_file</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'store.xml'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;">?></span> |
Второй способ – использование конструктора объекта SimpleXMLElement.
1 2 3 4 |
<span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;"><?php</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$xmlstr</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">=</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">file_get_contents</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'store.xml'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$store</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">=</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">new</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> SimpleXMLElement</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$xmlstr</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;">?></span> |
1 2 3 |
<span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;"><?php</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$store</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">=</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">new</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> SimpleXMLElement</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'store.xml'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">,</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> NULL</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">,</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">true</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;">?></span> |
Пожалуй, самым интересным является последний способ. Загрузка XML через конструктор позволяет задать некоторые опции (второй параметр конструктора): все эти флаги начинаются на “LIBXML_”. При их помощи можно убрать пустые элементы (LIBXML_NOBLANKS), заменить entities (LIBXML_NOENT), отключить вывод ошибок и предупреждений (LIBXML_NOERROR), проверить загружаемый документ на валидность, используя DTD схему (LIBXML_DTDVALID) – подробное описание можно найти в мануале – глава “LXXVI. libxml Functions”.
После загрузки XML документа мы можем получить доступ к его элементам. Все элементы конвертируются в свойства объекта SimpleXMLElement, все атрибуты – в ассоциативный массив (имена элементов и атрибутов регистрозависимые):
1 2 3 4 5 6 7 8 9 |
<span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;"><?php</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">foreach</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$store</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">-></span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">sku</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">as</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$sku</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">{</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">echo</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$sku</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">[</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'id'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">]</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">.</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'<br />'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">echo</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$sku</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">-></span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">name</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">.</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'<br />'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">echo</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$sku</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">-></span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">price</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">.</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'<br />'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">echo</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$sku</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">-></span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">EAN</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">.</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'<br />'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">}</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;">?></span> |
Кроме этого SimpleXML предоставляет средства, при помощи которых можно узнать список всех элементов и атрибутов (и их имена).
SimpleXMLElement::children()
SimpleXMLElement::attributes()
SimpleXMLElement::getName()
Таким образом можно вывести XML, не зная имен элементов и атрибутов.
SimpleXML также позволяет выполнять запросы XPath (метод SimpleXMLElement::xpath(xpath_expression)). Данный метод возвращает массив элементов SimpleXMLElement. Например, мы можем получить названия всех товаров:
1 2 3 |
<span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;"><?php</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$productNames</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">=</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$store</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">-</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">></span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">xpath</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'/store/sku/name'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;">?></span> |
или массив id всех товаров:
1 2 3 |
<span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;"><?php</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$productIDs</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">=</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$store</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">-</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">></span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">xpath</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'/store/sku/@id'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;">?></span> |
Следует отметить, что XPath всегда возвращает массив объектов SimpleXMLElement (даже если результатом запроса является один элемент).
Изменение XML документа
В ранних версиях php (до 5.1.3), у SimpleXML не было возможности добавлять элементы и атрибуты в XML документы. Можно было только изменять существующие значения, но единственным способом добавления новых элементов и атрибутов было экспортирование SimpleXML объекта в DOM (используя функцию dom_import_simplexml). Добавление производится при помощи DOM (методы объекта DomDocument->create_element, DomDocument->create_attribute и др.). После этого DOM документ экспортируют обратно в SimpleXML (simplexml_import_dom). Согласитесь, не очень удобно.
С версией php 5.1.3 у SimpleXML появилось два новых метода SimpleXMLElement::addChild() и SimpleXMLElement::addAttribute().
Эти методы принимают 3 параметра – имя элемента (атрибута), его значение и пространство имен (опционально).
Рассмотрим на примере добавление нового продукта в наш документ store.xml:
1 2 3 4 5 6 7 8 9 10 11 |
<span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;"><?php</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$filename</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">=</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'store.xml'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$store</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">=</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">new</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> SimpleXMLElement</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$filename</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">,</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> NULL</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">,</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">true</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$newSku</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">=</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$store</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">-</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">></span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">addChild</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'sku'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$newSku</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">-</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">></span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">addChild</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'name'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">,</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'Macbook Pro'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$newSku</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">-</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">></span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">addChild</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'price'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">,</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'2400'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$newSku</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">-</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">></span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">addChild</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'ean'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">,</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #2a00ff;">'1103610290850'</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;"> </span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$store</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">-</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">></span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; color: #7f0055;">asXML</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">(</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">$filename</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">)</span><span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #000000;">;</span> <span style="background: #ffffe8 none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: #7f0055;">?></span> |
В последней сроке используется метод SimpleXMLElement->asXML([filename]). Данный метод возвращает XML строку на основе текущего SimpleXMLElement, если определен параметр filename – то XML строка сохраняется в файл.
С XML можно работать при помощи DOM, но это будет рассмотрено уже в следующей статье.