php

Використання xpath () у PHP

Використання xpath () у PHP
XML-документ використовується для зберігання невеликого обсягу даних, і іноді потрібно прочитати певний вміст XML-документа на основі значення шляху за допомогою PHP-сценарію. Функція xpath () використовується для синтаксичного аналізу вмісту XML-документа. Цю функцію можна використовувати за допомогою simplexml_load_file () функцією або шляхом створення об'єкта SimpleXMLElement клас. Функцію xpath () можна використовувати для читання певних значень вузлів XML, показаних у цьому посібнику.

Синтаксис:

Синтаксис функції xpath () наведено нижче.

масив xpath (рядок $ path)

Ця функція має один аргумент, який приймає значення шляху, і якщо шлях існує у будь-якому вузлі документа XML, тоді значення вузла буде повернуто як масив. Різні способи використання цієї функції описані в наступній частині цього посібника.

Створити XML-документ:

Створіть XML-файл з іменем продуктів.xml із наступним вмістом у місці, де буде створений файл PHP для аналізу цього файлу.




MN-56345
DELL
15-дюймовий монітор Dell
700


HD-34278
SAMSUNG
Жорсткий диск Samsung на 1 ТБ
520


MS-67457
ЛОГІТЕХ
Бездротова миша Logitech
100


MN-76453
HP
14-дюймовий монітор HP
750

Використання simplexml_load_file () функція:

Функція xpath () з об'єктом, створеним функцією simplexml_load_file (), показана в цій частині цього посібника.

Приклад-1: Прочитайте конкретні значення вузлів XML

У наступному прикладі показано, як читати вміст певних значень вузла з документа XML, визначаючи шлях до функції xpath (). Змінна об’єкта, $ xml створюється для зчитування конкретних значень вузлів продуктів.xml файл. '/ ТОВАРИ / ТОВАР / БРЕНД' використовується у xpath () для зчитування всіх значень вузла BRAND. '/ ТОВАРИ / ТОВАР' використовується в xpath () для читання всіх значень дочірнього вузла ПРОДУКТ вузлів. для кожного цикл використовується для друку значень НАЗВА і ЦІНА вузлів.

// Створити об'єкт для читання XML-файлу
$ xml = simplexml_load_file ('продукти.xml ');
// Шукати всі значення вузла BRAND
$ brand = $ xml-> xpath ('/ ТОВАРИ / ТОВАР / БРЕНД');
// Друк значень масиву
ехо "

Список назв торгових марок:

";
foreach ($ бренд як $ назва)
echo "$ name
";

// Шукати всі значення вузла PRODUCT
$ products = $ xml-> xpath ('/ ТОВАРИ / ТОВАР');
ехо "

Перелік найменувань та ціни товару:

";
ехо "";
ехо "";
// Друк значень масиву
foreach ($ products як $ product)
ехо "";

ехо "
Ім'яЦіна
$ product-> NAME $$ продукт-> ЦІНА
";
?>

Вихід:

Наступний результат з’явиться після запуску сценарію з сервера.

Приклад-2: Прочитайте конкретні значення вузлів XML на основі умови

У наступному прикладі показано, як читати значення конкретного вузла на основі умови за допомогою функції xpath (). Значення шляху, '/ ТОВАРИ / ТОВАР [ЦІНА> 600]', буде шукати значення всіх дочірніх вузлів ПРОДУКТ вузол, де значення ЦІНА вузол більше 600. для кожного цикл використовується для друку значень НАЗВА і ЦІНА вузлів.

// Створити об'єкт для читання XML-файлу
$ xml = simplexml_load_file ('продукти.xml ');
// Пошук товарів, ціна яких перевищує 600
$ products = $ xml-> xpath ('/ ТОВАРИ / ТОВАР [ЦІНА> 600]');
ехо "

Перелік найменувань товару та ціни, де ціна перевищує 600:

";
ехо "";
ехо "";
// Друк значень масиву
foreach ($ products як $ product)
ехо "";

ехо "
Ім'яЦіна
$ product-> NAME $$ продукт-> ЦІНА
";
?>

Вихід:

Наступний результат з’явиться після запуску сценарію з сервера.

Приклад-3: Прочитайте конкретні значення вузлів XML на основі атрибута

У наступному прикладі показано, як читати значення конкретного вузла на основі значень атрибутів конкретного вузла документа XML за допомогою функції xpath (). Значення шляху, '/ ТОВАРИ / ТОВАР [@ category = ”Монітор”]' буде шукати значення всіх дочірніх вузлів продукт вузол, де значення атрибута категорії Монітор. для кожного цикл використовується для друку значень БРЕНД, і ЦІНА вузлів.

// Створити об'єкт для читання XML-файлу
$ xml = simplexml_load_file ('продукти.xml ');
// Шукаємо товари, де значення атрибута çategory - 'Монітор'
$ products = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
ехо "

Список торгової марки, назви та ціни на основі категорії (монітор):

";
ехо "";
ехо "";
// Друк значень масиву
foreach ($ products як $ product)
ехо "";

ехо "
БрендІм'яЦіна
$ товар-> БРЕНД$ product-> NAME $$ продукт-> ЦІНА
";
?>

Вихід:

Наступний результат з’явиться після запуску сценарію з сервера.

Використання SimpleXMLElement клас:

Використання функції xpath () шляхом створення об'єкта класу SimpleXMLElement показано в цій частині цього посібника.

Приклад-4: Використання xpath () шляхом визначення вмісту XML у змінній

У наступному прикладі показано, як читати значення вузла документа XML, оголошені у змінній замість файлу. XML-вміст зберігається в $ xml_data змінна. “/ Клієнти / клієнт” використовується як значення аргументу функції xpath () для зчитування всіх значень дочірніх вузлів замовника вузол. Далі, a для кожного цикл використовується для друку значень Ім'я вузол. “/ Customers / customer [@ department = 'HR']” використовується як значення аргументу іншої функції xpath () для зчитування всіх значень дочірніх вузлів клієнтського вузла, де значення кафедра атрибут є HR. Далі, a для кожного цикл використовується для друку значень електронною поштою вузол.

$ xml_data = <<

Md. Махбуб
[електронна пошта захищена]


Фархана Заман
[електронна пошта захищена]


XML;
// Визначити об'єкт для читання даних XML
$ xml = новий SimpleXMLElement ($ xml_data);
// Визначити шлях для читання всіх даних клієнтів
$ клієнтів = $ xml-> xpath ("/ customers / customer");
// Роздрукувати ім'я клієнтів
ехо "

Список імен клієнтів:

";
foreach ($ клієнтів як $ клієнта)
echo "$ customer-> name
";

// Визначити шлях для читання всіх даних клієнтів відділу кадрів
$ клієнти = $ xml-> xpath ("/ клієнти / клієнт [@ department = 'HR']");
// Роздрукувати електронну пошту клієнтів
ехо "

Електронна пошта клієнта відділу кадрів:

";
foreach ($ клієнтів як $ клієнта)
echo "$ customer-> email
";

?>

Вихід:

Наступний результат з’явиться після запуску сценарію з сервера.

Висновок:

Два різні способи використання функції xpath () для зчитування значень вузла документа XML на основі конкретного шляху або шляху із умовою або шляху зі значенням атрибута були пояснені в цьому посібнику на декількох прикладах.

Підручник Тінь розкрадача гробниць для Linux
Shadow of the Tomb Raider - дванадцяте доповнення до серії Tomb Raider - франшизи екшн-пригодницької гри, створеної Eidos Montreal. Гру сприйняли як к...
Як збільшити FPS в Linux?
FPS означає Кадри в секунду. Завданням FPS є вимірювання частоти кадрів при відтворенні відео або ігрових виставах. Простими словами кількість безпере...
Найкращі лабораторні ігри Oculus App
Якщо ви є власником гарнітури Oculus, то вам потрібно дізнатися про бокове завантаження. Бокове завантаження - це процес встановлення негарнітного вмі...