Синтаксис:
Синтаксис функції xpath () наведено нижче.
масив xpath (рядок $ path)Ця функція має один аргумент, який приймає значення шляху, і якщо шлях існує у будь-якому вузлі документа XML, тоді значення вузла буде повернуто як масив. Різні способи використання цієї функції описані в наступній частині цього посібника.
Створити XML-документ:
Створіть XML-файл з іменем продуктів.xml із наступним вмістом у місці, де буде створений файл PHP для аналізу цього файлу.
Використання 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 ('/ ТОВАРИ / ТОВАР');
ехо "
Перелік найменувань та ціни товару:
";ехо "
Ім'я | Ціна |
---|---|
$ product-> NAME | $$ продукт-> ЦІНА |
?>
Вихід:
Наступний результат з’явиться після запуску сценарію з сервера.
Приклад-2: Прочитайте конкретні значення вузлів XML на основі умови
У наступному прикладі показано, як читати значення конкретного вузла на основі умови за допомогою функції xpath (). Значення шляху, '/ ТОВАРИ / ТОВАР [ЦІНА> 600]', буде шукати значення всіх дочірніх вузлів ПРОДУКТ вузол, де значення ЦІНА вузол більше 600. для кожного цикл використовується для друку значень НАЗВА і ЦІНА вузлів.
// Створити об'єкт для читання XML-файлу$ xml = simplexml_load_file ('продукти.xml ');
// Пошук товарів, ціна яких перевищує 600
$ products = $ xml-> xpath ('/ ТОВАРИ / ТОВАР [ЦІНА> 600]');
ехо "
Перелік найменувань товару та ціни, де ціна перевищує 600:
";ехо "
Ім'я | Ціна |
---|---|
$ product-> NAME | $$ продукт-> ЦІНА |
?>
Вихід:
Наступний результат з’явиться після запуску сценарію з сервера.
Приклад-3: Прочитайте конкретні значення вузлів XML на основі атрибута
У наступному прикладі показано, як читати значення конкретного вузла на основі значень атрибутів конкретного вузла документа XML за допомогою функції xpath (). Значення шляху, '/ ТОВАРИ / ТОВАР [@ category = ”Монітор”]' буде шукати значення всіх дочірніх вузлів продукт вузол, де значення атрибута категорії Монітор. для кожного цикл використовується для друку значень БРЕНД, і ЦІНА вузлів.
// Створити об'єкт для читання XML-файлу$ xml = simplexml_load_file ('продукти.xml ');
// Шукаємо товари, де значення атрибута çategory - 'Монітор'
$ products = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
ехо "
Список торгової марки, назви та ціни на основі категорії (монітор):
";ехо "
Бренд | Ім'я | Ціна |
---|---|---|
$ товар-> БРЕНД | $ product-> NAME | $$ продукт-> ЦІНА |
?>
Вихід:
Наступний результат з’явиться після запуску сценарію з сервера.
Використання SimpleXMLElement клас:
Використання функції xpath () шляхом створення об'єкта класу SimpleXMLElement показано в цій частині цього посібника.
Приклад-4: Використання xpath () шляхом визначення вмісту XML у змінній
У наступному прикладі показано, як читати значення вузла документа XML, оголошені у змінній замість файлу. XML-вміст зберігається в $ xml_data змінна. “/ Клієнти / клієнт” використовується як значення аргументу функції xpath () для зчитування всіх значень дочірніх вузлів замовника вузол. Далі, a для кожного цикл використовується для друку значень Ім'я вузол. “/ Customers / customer [@ department = 'HR']” використовується як значення аргументу іншої функції xpath () для зчитування всіх значень дочірніх вузлів клієнтського вузла, де значення кафедра атрибут є HR. Далі, a для кожного цикл використовується для друку значень електронною поштою вузол.
$ xml_data = <<XML;
// Визначити об'єкт для читання даних XML
$ xml = новий SimpleXMLElement ($ xml_data);
// Визначити шлях для читання всіх даних клієнтів
$ клієнтів = $ xml-> xpath ("/ customers / customer");
// Роздрукувати ім'я клієнтів
ехо "
Список імен клієнтів:
";foreach ($ клієнтів як $ клієнта)
echo "$ customer-> name
";
// Визначити шлях для читання всіх даних клієнтів відділу кадрів
$ клієнти = $ xml-> xpath ("/ клієнти / клієнт [@ department = 'HR']");
// Роздрукувати електронну пошту клієнтів
ехо "
Електронна пошта клієнта відділу кадрів:
";foreach ($ клієнтів як $ клієнта)
echo "$ customer-> email
";
?>
Вихід:
Наступний результат з’явиться після запуску сценарію з сервера.
Висновок:
Два різні способи використання функції xpath () для зчитування значень вузла документа XML на основі конкретного шляху або шляху із умовою або шляху зі значенням атрибута були пояснені в цьому посібнику на декількох прикладах.