Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΠΎ PHPΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 20

Автор white cat

SimpleXMLElement->children -- Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта

SimpleXMLElement->xpath -- ВыполняСт Xpath-запрос ΠΊ XML-Π΄Π°Π½Π½Ρ‹ΠΌ

simplexml_import_dom -- Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚SimpleXMLElement, созданный ΠΈΠ· DOM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

simplexml_load_file -- Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ XML-Ρ„Π°ΠΉΠ» Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

simplexml_load_string -- Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ строку с XML Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

SimpleXML


Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅


SimpleXML прСдоставляСт ΠΎΡ‡Π΅Π½ΡŒ простой Π² восприятии, ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ-понятный доступ ΠΊ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с элСмСнтами XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ.


ВрСбования


SimpleXML присутствуСт Π² PHP начиная с вСрсии 5.


Установка


SimpleXML установлСн Π² PHP ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ PHP с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ --disable-simplexml.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹


ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ содСрТаниС XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ помСстим XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π² Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ simplexml_load_file().

<?php

$xmlstr = <<<XML

<?xml version='1.0' standalone='yes'?>

<movies>

<movie>

<title>PHP: Behind the Parser</title>

<characters>

<character>

<name>Ms. Coder</name>

<actor>Onlivia Actora</actor>

</character>

<character>

<name>Mr. Coder</name>

<actor>El Act&amp;#211;r</actor>

</character>

</characters>

<plot>

So, this language. It's like, a programming language. Or is it a

scripting language? All is revealed in this thrilling horror spoof

of a documentary.

</plot>

<rating type="thumbs">7</rating>

<rating type="stars">5</rating>

</movie>

</movies>

XML;

?>

ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SimpleXML ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ тСкста ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ тСкста Π² <plot>



<?php

include 'example.php';

$xml = simplexml_load_string($xmlstr);

echo $xml-&gt;movie[0]-&gt;plot; // "So this language. It's like..."

?>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3. Π Π°Π±ΠΎΡ‚Π° с Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ элСмСнтов Π² SimpleXML

МоТно ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ для получСния Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… элСмСнтов Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта (Ссли Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚).



<?php

include 'example.php';


$xml = simplexml_load_string($xmlstr);


/* Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта &lt;movie&gt; ΠΌΡ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ элСмСнт . */

foreach ($xml-&gt;movie as $movie) {

echo $movie-&gt;plot, '&lt;br /&gt;';

}


?>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4. ИспользованиС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²

Π’Ρ‹ΡˆΠ΅ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с элСмСнтами XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ ΠΈΡ… значСниями. SimpleXML Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ доступ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ элСмСнтов. Атрибуты ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта доступны ΠΊΠ°ΠΊ ассоциативный массив Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта.

<?php

include 'example.php';


$xml = simplexml_load_string($xmlstr);


/* ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ доступа ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ элСмСнтов &lt;rating&gt; для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΊΠΈΠ½ΠΎ.*/

foreach ($xml-&gt;movie[0]-&gt;rating as $rating) {

switch((string) $rating['type']) { // Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΊΠ°ΠΊ элСмСнты массива

case 'thumbs':

echo $rating, ' thumbs up';

break;

case 'stars':

echo $rating, ' stars';

break;

}

}

?>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 5. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ элСмСнтов ΠΈ ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² с тСкстовыми значСниями

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ элСмСнт ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ со строковыми значСниями, ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ содСрТаниС элСмСнта ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΊΠ°ΠΊ строки с ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ (string). Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС PHP воспримСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.



<?php

include 'example.php';


$xml = simplexml_load_string($xmlstr);


if ((string) $xml-&gt;movie-&gt;title == 'PHP: Behind the Parser') {

print 'Мой Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ Ρ„ΠΈΠ»ΡŒΠΌ.';

}


htmlentities((string) $xml-&gt;movie-&gt;title);

?>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 6. ИспользованиС Xpath

Π’ SimpleXML Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° запросов Xpath. Поиск всСх элСмСнтов :



<?php

include 'example.php';

$xml = simplexml_load_string($xmlstr);


foreach ($xml-&gt;xpath('//character') as $character) {

echo $character-&gt;name, ' ΡΡŠΠΈΠ³Ρ€Π°Π» ', $character-&gt;actor, '&lt;br /&gt;';

}

?>

'//' слуТит Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹ΠΌ символом. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, трСбуСтся ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ слСш.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 7. Π—Π°Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π”Π°Π½Π½Ρ‹Π΅ Π² SimpleXML Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ постоянными. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ измСнСния всСх Π΅Π³ΠΎ элСмСнтов.



<?php

include 'example.php';

$xml = simplexml_load_string($xmlstr);


$xml-&gt;movie[0]-&gt;characters-&gt;character[0]-&gt;name = 'Miss Coder';


echo $xml-&gt;asXML();

?>

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΈΠ΄Π΅Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Ρƒ Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½ΠΎΠ²ΠΎΠΌ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ вмСсто Ms. Coder Π±ΡƒΠ΄Π΅Ρ‚ Miss Coder.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 8. ВзаимодСйствиС с DOM

PHP ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ· Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° SimpleXML Π² DOM ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ DOM-элСмСнт Π² SimpleXML-элСмСнт:

<?php

$dom = new domDocument;

$dom-&gt;loadXML('&lt;books&gt;&lt;book&gt;&lt;title&gt;blah&lt;/title&gt;&lt;/book&gt;&lt;/books&gt;');

if (!$dom) {

echo 'Ошибка прСобразования Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°';

exit;

}


$s = simplexml_import_dom($dom);


echo $s-&gt;book[0]-&gt;title;

?>


Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅:


SimpleXMLElement->asXML -- Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ сформированный XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚

SimpleXMLElement->attributes -- Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ элСмСнта.

SimpleXMLElement->children -- Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта

SimpleXMLElement->xpath -- ВыполняСт Xpath-запрос ΠΊ XML-Π΄Π°Π½Π½Ρ‹ΠΌ

simplexml_import_dom -- Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚SimpleXMLElement, созданный ΠΈΠ· DOM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

simplexml_load_file -- Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ XML-Ρ„Π°ΠΉΠ» Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

simplexml_load_string -- Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ строку с XML Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

asXML


SimpleXMLElement-asXML


SimpleXMLElement-asXML -- Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ сформированный XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚


ОписаниС


mixed SimpleXMLElement->asXML ( [string filename] )

ΠœΠ΅Ρ‚ΠΎΠ΄ asXML Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² XML вСрсии 1.0.


Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²



Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния


Если имя Ρ„Π°ΠΉΠ»Π° Π·Π°Π΄Π°Π½ΠΎ, Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ XML Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ XML-Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ строки.


ЗамСчания


Если Π² исходном Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ… Π±Ρ‹Π»Π° ΡƒΠΊΠ°Π·Π°Π½Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° encoding, Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ asXML Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅. ИзмСнСниС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ SIMPLEXML Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1. ВывСсти XML

<?php

$string = <<<XML

<a>

<b>

<c>text</c>

<c>stuff</c>

</b>

<d>

<c>code</c>

</d>

</a>

XML;


$xml = simplexml_load_string($string);


echo $xml->asXML(); // <?xml ... <a><b><c>text</c><c>stuff</c> ...


?>

ΠœΠ΅Ρ‚ΠΎΠ΄ asXML Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Xpath:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° asXML() Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Xpath

<?php

// ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅.

/* Поиск <a><b><c> */

$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {

echo $node->asXML(); // <c>text</c> ΠΈ <c>stuff</c>

}

?>

attributes


SimpleXMLElement-attributes


SimpleXMLElement-attributes -- Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ элСмСнта.


ОписаниС


SimpleXMLElement simplexml_element->attributes ( [string data] )

Π­Ρ‚Π° функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ названия ΠΈ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ xml-элСмСнта.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: SimpleXML содСрТит ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ добавлСния ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… свойств ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Они Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ просмотрСны с испольваниСм var_dump() ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… срСдств Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1. Π˜Π½Ρ‚Π΅ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡ XML-строки

<?php

$string = <<<XML

<users>

<user name="Evgen" age="27"> [email protected]</user>

</users>

XML;

$xml = simplexml_load_string($string);

foreach($xml->users[0]->attributes() as $a => $b) {

echo $a,'="',$b,"\"\n";

}

?>

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚:

name="Evgen"age="27

children


SimpleXMLElement-children


SimpleXMLElement-children -- Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта


ОписаниС


SimpleXMLElement simplexml_element->children ( [string nsprefix] )

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта.