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&#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->movie[0]->plot; // "So this language. It's like..."
?>
ΠΡΠΈΠΌΠ΅Ρ 3. Π Π°Π±ΠΎΡΠ° Ρ Π³ΡΡΠΏΠΏΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² SimpleXML
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΈΠΊΠ»Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (Π΅ΡΠ»ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ).
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
/* ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° <movie> ΠΌΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½Ρ . */
foreach ($xml->movie as $movie) {
echo $movie->plot, '<br />';
}
?>
ΠΡΠΈΠΌΠ΅Ρ 4. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ²
ΠΡΡΠ΅ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΈ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. SimpleXML ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΡΡΠΈΠ±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΊΠ°ΠΊ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
/* ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² <rating> Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠΈΠ½ΠΎ.*/
foreach ($xml->movie[0]->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->movie->title == 'PHP: Behind the Parser') {
print 'ΠΠΎΠΉ Π»ΡΠ±ΠΈΠΌΡΠΉ ΡΠΈΠ»ΡΠΌ.';
}
htmlentities((string) $xml->movie->title);
?>
ΠΡΠΈΠΌΠ΅Ρ 6. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Xpath
Π SimpleXML Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² Xpath. ΠΠΎΠΈΡΠΊ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² :
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
foreach ($xml->xpath('//character') as $character) {
echo $character->name, ' ΡΡΠΈΠ³ΡΠ°Π» ', $character->actor, '<br />';
}
?>
'//' ΡΠ»ΡΠΆΠΈΡ Π³ΡΡΠΏΠΏΠΎΠ²ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ. Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ ΠΏΡΡΡ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅Ρ.
ΠΡΠΈΠΌΠ΅Ρ 7. ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
ΠΠ°Π½Π½ΡΠ΅ Π² SimpleXML Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌΠΈ. ΠΠ±ΡΠ΅ΠΊΡ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);
$xml->movie[0]->characters->character[0]->name = 'Miss Coder';
echo $xml->asXML();
?>
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ Π½ΠΎΠ²ΡΠΉ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΈΠ΄Π΅Π΅Π½ΡΠΈΡΠ½ΡΠΉ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Ρ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π² Π½ΠΎΠ²ΠΎΠΌ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΠΌΠ΅ΡΡΠΎ Ms. Coder Π±ΡΠ΄Π΅Ρ Miss Coder.
ΠΡΠΈΠΌΠ΅Ρ 8. ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ DOM
PHP ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΡΠΎΡΠΌΠ°ΡΠ° SimpleXML Π² DOM ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ DOM-ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² SimpleXML-ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
<?php
$dom = new domDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
echo 'ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°';
exit;
}
$s = simplexml_import_dom($dom);
echo $s->book[0]->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] )
ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.