Итак этот пост я решил посвятить чтению файлов XML средствами PHP.
Самый просто способ прочитать xml-ку это SimpleXML. Это библиотека является очень удобной, короткой и локаничной. Итак предположим что у нас есть файл xml следующего содержания
< ?xml version="1.0" encoding="UTF-8"?> <points> <a href="a=univercity" title="Список университетов"/> <a href="a=faculty_list" title="Список факультетов"/> </points>
Чтобы его прочитать необходим следующий код:
$xml = simplexml_load_file($xmlfile); //var_dump($xml); foreach($xml->children() as $key) { echo $key['title'] .'-'. $key['href'].'<br />'; }
Теперь разберём что написали:
$xml = simplexml_load_file($xmlfile) — Данная строка берёт наш файл xml и конвертирует его в обьект .
Далее у нас имеется интересная запись $xml->children(). Это означает что мы перешли к внутреннему блоку нашего xml документа. Т.е от <points> к его сыну, в нашем случае это тег <a>. Далее мы можем получить все атрибуты нашего тега. У нас их 2 — title и href. Обращение происходит как к элементу массива $key[‘href’] или $key[‘title’].
Далее, есть еще один простой вид XML документа.
< ?xml version="1.0" encoding="UTF-8"?> <template> <parametrs> <name>Eugene</name> <author>Hopkins</author> <description>Любимый автор</description> <version>1.0</version> </parametrs> </template>
Чтение данного типа тоже не вызовет никакх проблем. Оно осуществляется по следующему сценарию:
$parametrs = simplexml_load_file ( $xmlfile ); foreach ( $parametrs->parametrs as $param ) : echo $param->name.'<br />'; echo $param->author.'<br />'; echo $param->description.'<br />'; echo $param->version.'<br />'; endforeach
Тут мы считываем параметры тега <parametrs> и обращаемся к элементам как к свойствам обьекта. $parametrs->parametrs — означает что мы перешли на тег <parametrs> и работаем с его содержимым как с обьектом.
Обожаю играть в онлайн рулетку. Не надо никуда идти. Просто сиди мома или в офисе и играй. Кстати
правила игры в рулетку очень просты. Попробуй и тебе понравится.
Вспомните своё детство и свои игрушки. Как много хотелось и как мало было. Игрушки оптом это возможность сделать своих близких и детей немного счастливее. Не отказывайте им в удовольствии.
вероятнее не «echo $key[‘href’] .’-‘. $key[‘href’].»;», а «echo $key[‘title’] .’-‘. $key[‘href’].»;»
О, большое спасибо. Исправил.
Это конечно интересно, но к сожалению, данный метод пригоден лишь для небольших файлов 🙁
Здравствуйте. Пример очень помог но из xml я могу выташить либо первое значение либо все сразу. А как поступить если мне нужнто вытащить второе или какое другое? Пример кода php:
$parametrs = simplexml_load_file (‘E:\Program Files\Новая папка\Книга1.xml’);
foreach ( $parametrs->Worksheet->Table->Row as $param ) :
echo $param->Cell->Data.»;
endforeach
ето вытаскивет все значения.
пример кода xml:
te4rtestet
e4te4ts
4etst44est
e4tset44e
3
16
1
False
False