Как получить данные из xml файла в php?

Пользователь

от jeremy_larkin , в категории: PHP , 3 года назад

Как получить данные из xml файла в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от brooklyn , 2 года назад

@jeremy_larkin 

В PHP есть несколько способов получить данные из XML файла:

  1. Использовать расширение SimpleXML:
1
2
3
4
5
6
7
$xml = simplexml_load_file('file.xml');

// Получить значение атрибута
$value = $xml->item['attribute'];

// Получить значение элемента
$value = $xml->item->element;


  1. Использовать расширение DOM:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$doc = new DOMDocument;
$doc->load('file.xml');

$xpath = new DOMXPath($doc);

// Получить значение атрибута
$value = $xpath->query('/root/item/@attribute')->item(0)->value;

// Получить значение элемента
$value = $xpath->query('/root/item/element')->item(0)->nodeValue;


Оба расширения предоставляют быстрый и простой способ работы с XML файлами в PHP. Выбор того или иного расширения зависит от ваших конкретных потребностей и предпочтений.


Следует также учитывать, что расширение DOM является более гибким инструментом для работы с XML, так как оно позволяет создавать, модифицировать и удалять элементы и атрибуты в д

Пользователь

от bernardo_nolan , год назад

@jeremy_larkin 

  1. Считать содержимое файла в переменную:
1
$xml = simplexml_load_file('file.xml');


  1. Обращаться к данным можно используя нотацию объектов или массивов:
1
2
3
4
5
// обращение через объект
echo $xml->node1->attribute;

// обращение через массив
echo $xml['attribute'];


  1. Для получения всех элементов можно использовать цикл:
1
2
3
foreach($xml->children() as $node) {
  echo $node->nodeValue;
}


  1. Для получения атрибутов можно использовать функции:
1
2
3
4
5
// для получения атрибута узла
$attribute = $xml->node1->attributes()->attribute_name;

// для получения всех атрибутов узла
$attributes = $xml->node1->attributes();