Используем XPath с PHP

Предоставьте XPath делать за вас всю тяжелую работу с XML

Если ваши PHP-приложения не ограничиваются операциями создания, чтения, обновления и удаления записей (CRUD), то вам, скорее всего, приходилось работать с XML. Задача навигации по XML-документу или по потоку в поисках нужного элемента данных может быть обременительной и даже пугающей для PHP-разработчиков. Она может оказаться особенно тяжелой при сложной структуре XML . XPath – это стандарт W3C, единственной целью которого является получение доступа к нужному элементу данных, и, в частности, к нужному узлу. PHP поддерживает XPath в рамках своих XML-классов и функций. В этой статье мы рассмотрим некоторые простые сценарии поиска информации в XML и изучим, как XPath может выполнить за вас тяжелую работу в ваших PHP-приложениях.

Трейси Бост, консультант и преподаватель, Свободный писатель

Author photo - Tracy BostТрейси Бост - опытный разработчик программного обеспечения и проектировщик систем. Он специализируется на интеграции корпоративных приложений. Был сопредседателем рабочей группы по бизнес-правилам Организации по поддержке стандартов ипотечной отрасли (MISMO) и сопредседателем секции промышленных стандартов на симпозиуме RuleML2010. Работал в различных отраслях, в том числе в ипотеке, недвижимости и некоммерческом секторе.



19.03.2012

Часто используемые сокращения

  • API: Application programming interface - интерфейс прикладного программирования
  • CRUD: Create, Read, Update, and Delete - создание, чтение, обновление и удаление
  • CSS: Cascading Style Sheets - каскадные таблицы стилей
  • DOM: Document Object Model - объектная модель документа
  • JSON: JavaScript Object Notation
  • RDF: Resource Description Framework
  • REST: Representational State Transfer - передача состояния представления
  • RSS: Really Simple Syndication
  • SKU: Stock-keeping unit - идентификатор товарной позиции
  • URI: Uniform Resource Identifier - унифицированный идентификатор ресурса
  • W3C: World Wide Web Consortium - консо́рциум WWW
  • XHTML: Extensible Hypertext Markup Language - расширяемый язык разметки гипертекста
  • XPath: XML Path Language - язык запросов к элементам XML-документа
  • XSL: Extensible Stylesheet Language - язык преобразования и визуализации XML-документов
  • XSLT: Extensible Stylesheet Language Transformation - язык расширяемых стилевых страниц для преобразования XML-документов

В этой статье вы изучите следующие вопросы:

  • Применение XPath
  • Написание простых выражений XPath
  • Использование XPath-функциональности XML-библиотек в PHP
  • Использование XPath и PHP для преобразования форматов данных

В статье приводится несколько рабочих примеров использования XPath с PHP, которые вы можете испытать на практике, если у вас есть предварительные навыки, описанные в разделе Предварительные условия.

Предварительные условия

Чтобы получить наибольшую пользу от этой статьи, вы должны знать XML и PHP5, а также уметь настраивать и устанавливать расширения PHP. Кроме того, вы должны иметь доступ UNIX®- или Microsoft® Windows®-систему с Web-сервером, поддерживающим PHP5, на котором вы можете проверять примеры кода, описанные в этой статье, и уметь с ними работать.


Зачем нужен XPath

По мере того как всемирная сеть движется к первоначальной концепции семантической сети, приложения все активнее взаимодействуют между собой. Такие технологии, как SOAP, REST, RSS, RDF и другие, создают прочную основу для всемирной сети будущего. В большей их части именно XML выбран в качестве формата сообщений для описания используемых данных. В какой-то степени можно использовать JSON, но, вероятнее всего, вы увидите именно XML в качестве основного метода для обмена данными.

Кроме того, вы можете столкнуться с задачей преобразования XML-данных в XHTML для создания привлекательного, интерактивного и полезного интерфейса для пользователей мобильных устройств и различных Web-браузеров.

Хранение данных в качестве XML-документов в файловой системе или XML-совместимых базах данных также является популярным способом архивирования данных для последующего извлечения для таких задач, как составление отчетов, отображение пользовательского интерфейса или работа с интеграцией приложений.

При работе с XML-данными вам приходится анализировать данные, чтобы получить наименьший общий знаменатель — требуемые данные (значения атомарных узлов, как их часто называют). Утвержденный W3C стандарт XSLT позволяет преобразовывать XML в другие форматы, такие как HTML, PDF или в другие XML-документы, использующие другую схему. Он в значительной степени опирается на XPath, так же как и другие стандарты - XQuery, XForms и XPointer.


Среда XPath

В своем самом простом виде XPath — это язык для навигации по XML-дереву в памяти. Первоначально XPath был разработан в качестве языка для XSLT и XPointer. XPath 1.0 стал стандартом W3C в 1999 году. Более новая версия XPath 2.0 получила статус спецификации в 2007 году.

По мере появления других спецификаций XML расширялось и использование XPath. Сегодня XPath является предпочтительным языком для навигации по XML в схемах XML, ISO Schematron, XQuery и XForms. Как ни странно, но не без основания, XPath не основан на XML-синтаксисе. Он использует свой собственный синтаксис, чтобы избежать коллизий с URI, XML и другими связанных с XML синтаксическими структурами.

При работе с XPath в PHP помните, что XPath не используется в одиночку. Вы используете его в качестве инструмента для навигации по XML в памяти при работе с одной из других XML-спецификаций.

В обсуждениях и примерах этой статьи я использую более распространенную спецификацию XPath 1.0. Версия XPath 2.0 обратно совместима с XPath 1.0, но на данный момент поддержка XPath 2.0 в PHP ограниченна.

Спецификация XPath содержит подробное описание своего стандартного использования и терминологии. Если вы предполагаете сложное использование XPath с PHP, эта спецификация будет для вас надежной опорной точкой. Кроме того, спецификацию XPath можно разделить на четыре основные тематические области, как показано в таблице 1.

Таблица 1. 4 основные области спецификации XPath
ОбластьОписаниеПример
ПутьСодержит шаги, оси, предикаты и сокращенный синтаксис.parent::node, child::text(), attribute::*, /PRODUCTS/PRODUCT[3]/NAME
Модель данныхОписывает XML как дерево. Содержит корневые узлы, узлы с атрибутами, текстом, пространствами имен, элементами, инструкциями обработки и комментариями./, /ns1:PRODUCTS/ns1:PRODUCT, @category
ВыраженияМожет содержать ссылки на переменные, функции, логические переменные, числа, строки и предикаты ./PRODUCTS/PRODUCT/NAME[string-length( ) > 15]/../@category
ФункцииXPath 1.0 имеет 27 встроенных функций для работы с наборами узлов, строками, логическими переменными и числами.string-length(), true(), sum()

Пишем XPath-выражения

Прежде чем писать PHP-код, потратьте некоторое время на изучение узлов, путей и функций XPath. Файл products.xml в листинге 1 содержит примеры нескольких часто используемых выражений для поиска данных в XML, основанных на предикатах, для поиска атомарных значений узлов, а также примеры использования функций.

Листинг 1. Пример XML документа с товарами (products.xml)
<?xml version="1.0" encoding="UTF-8"?>
<PRODUCTS>
<PRODUCT category="software">
<SKU>soft32323</SKU>
<SUB_CATEGORY>Business Analysis</SUB_CATEGORY>
<NAME>Widget Reporting</NAME>
<PRICE>4500</PRICE>
</PRODUCT>
<PRODUCT category="software">
<SKU>soft32323</SKU>
<SUB_CATEGORY>Business Analysis</SUB_CATEGORY>
<NAME>Pro Reporting</NAME>
<PRICE>2300</PRICE>
</PRODUCT>
<PRODUCT category="storage">
<SKU>soft32323</SKU>
<SUB_CATEGORY>Tape Systems</SUB_CATEGORY>
<NAME>Tapes Abound</NAME>
<PRICE>2300</PRICE>
</PRODUCT>
<PRODUCT category="storage">
<SKU>soft32323</SKU>
<SUB_CATEGORY>Disk Systems</SUB_CATEGORY>
<NAME>Widget100 Series</NAME>
<PRICE>6500</PRICE>
</PRODUCT>
</PRODUCTS>

/PRODUCTS возвращает все узлы, которые являются потомками узла PRODUCTS, в данном случае их четыре. Обратите внимание на косую черту (/). Если вы знакомы с UNIX-системами, вы знаете, что косая черта означает абсолютный путь. Как и в файловых путях в UNIX, вы можете использовать абсолютные пути в случае сомнений на счет текущего местоположения контекста. Для документа в листинге 1, PRODUCTS является корневым узлом.

Относительные пути в XPath также работают. Использование .. в выражении указывает инструкции перейти на один уровень выше текущего узла в иерархии (опять же аналогично работе с каталогами в UNIX-системах). Например, ../PRODUCT/SKU возвращает атомарное значение узла для всех четырех SKU-номеров, связанных с каждым узлом PRODUCT.

Выбор узла с атрибутами требует специального синтаксиса в XPath. Если вы хотите получить все узлы PRODUCT , перечисленые в категории software, используйте выражение /PRODUCTS/PRODUCT[@category='software']. В этом выражении category считается атрибутом в XML-документе. XPath может выбирать атрибуты с символом (@). Кроме того, вы можете выбрать атрибут с помощью синтаксиса attribute:: - при этом выражение примет вид /PRODUCTS/PRODUCT[attribute::category='software']. Многие считают, что символ @ лаконичнее и проще в использовании.

Для выбора атомарных узловых значений (то есть фактических текстовых значений) для всех названий продуктов стоимостью более $ 2500 можно написать выражение /PRODUCTS/PRODUCT[PRICE > 2500]/NAME. При выполнении это выражение возвращает значения Widget Reporting и Widget100 Series.

Прежде чем переходить к использованию XPath с PHP, взгляните на последний пример выражения: /PRODUCTS/PRODUCT/NAME[string-length( ) > 15]/../@category. При выполнении это выражение возвращает два значения: software и storage. В частности, это выражение соответствует значению категории для каждого продукта, имя которого длиннее 15 символов.

XML-документ в листинге 1 служит исходным документом для всех выражений XPath, которые демонстрируются в этой статье.


Исследуем поддержку XPath в PHP

Тот факт, что PHP поддерживает XML и XPath, не должен вызывать удивления. На самом деле, этот самый популярный Web-скриптовый язык предоставляет в своих базовых библиотеках несколько хороших функций для работы с XPath.

Базовые библиотеки PHP предоставляют целый ряд вариантов для работы с XML:

  • SimpleXML
  • DOM
  • XMLWriter/Reader

Библиотека SimpleXML проста в использовании и подходит для относительно простых рутинных задач обработки XML. У нее есть ограничения, например, она не полностью поддерживает проверку, запись и пространства имен. При обработке больших XML-деревьев данных имейте в виду, что SimpleXML полностью загружает XML-дерево документа в память перед обработкой.

Если вам нужно использовать более сложные выражения XPath и необходим полный контроль над документом, хорошим выбором является DOM. DOM – это сокращение от Document Object Model (объектная модель документа - стандарт W3C). Вы можете использовать DOM с PHP, установив его в качестве расширения. Расширения, подобные DOM, как правило, просты в установке и использовании. Зачастую достаточно раскомментировать одну строку в файле php.ini, чтобы активировать уже скомпилированный модуль. Как и SimpleXML, DOM загружает полное XML-дерево документа в память перед обработкой. Как вы увидите далее в статье, DOMXPath также довольно приятен в использовании.

Вы можете также загрузить и установить XML_XPath из хранилища PEAR (PHP Extension and Application Repository). Этот класс использует DOM и поддерживает запросы с использованием XPath для манипулирования документами и извлечения атомарных значений узлов.

Если вы работаете с Zend Framework, в вашем распоряжении библиотека Zend_Dom_Query. Если ваша конкретная среда PHP не предусматривает специальных классов и функций для XML и XPath, вы можете просто использовать то, что PHP уже предоставляет.

XMLWriter / Reader не поддерживает XPath без помощи SimpleXML или DOMXPath, поэтому в этой статье он не рассматривается.

Независимо от того, какую библиотеку или среду вы используете, для эффективной работы очень важно понимать, как создавать XPath-выражения. При использовании XPath в сочетании с PHP-библиотеками, связанными с XML, синтаксис XPath не меняется. В приведенных далее примерах и демонстрациях используется сочетание DOM и SimpleXML.


Работа с XPath в PHP

С помощью файла products.xml с примерами из листинга 1 и PHP5 SimpleXML API вы можете поэкспериментировать с различными выражениями XPath.

При выполнении кода из листинга 2 выводится полный XML-файл – конечно, в виде массива. XPath-выражение /PRODUCTS срабатывает при каждом совпадении узла, который является потомком корневого узла (PRODUCTS).

Листинг 2. Использование SimpleXML для отображения всех узлов в массиве
<?php
$xml = simplexml_load_file("products.xml");
$products = $xml->xpath("/PRODUCTS");
print_r($products);
 ?>
------------------------------------------------------------
OUTPUT:

Array ( [0] => SimpleXMLElement Object ( [PRODUCT] => 
Array ( [0] => SimpleXMLElement Object
( [@attributes] => Array ( [category] => software ) [SKU] =>
soft1234 [SUB_CATEGORY] => 
Business Analysis [NAME] => Widget Reporting [PRICE] => 4500 ) [1] => 
SimpleXMLElement Object 
( [@attributes] => Array ( [category] => software ) [SKU] => soft5678
[SUB_CATEGORY] =>
Business Analysis [NAME] => Pro Reporting [PRICE] => 2300 ) [2] => 
SimpleXMLElement Object
( [@attributes] => Array ( [category] => storage ) [SKU] => 
stor01010 [SUB_CATEGORY] => Tape Systems [NAME] => 
Tapes Abound [PRICE] => 1900 ) 
[3] => SimpleXMLElement Object ( [@attributes] => 
Array ( [category] => storage ) [SKU] => 
stor23232 [SUB_CATEGORY] => Disk Systems [NAME] => 
Widget100 Series [PRICE] => 6500 ) ) ) )

При выполнении кода из листинга 3 результатом будет массив значений каждого узла NAME XML-дерева. Обратите внимание, как выражение /PRODUCTS/PRODUCT/NAME находит каждый подходящий узел в XML-дереве, а не только первый или последний.

Листинг 3. Использование SimpleXML для отображения всех названий продуктов в массиве
<?php
$xml = simplexml_load_file("products.xml");
$products = $xml->xpath("/PRODUCTS/PRODUCT/NAME");
print_r($products);
 ?>
------------------------------------------------------------
OUTPUT:

Array ( [0] => SimpleXMLElement Object ( [0] => Widget Reporting ) 
[1] => SimpleXMLElement Object ( [0] => Pro Reporting ) [2] => 
SimpleXMLElement Object ( [0] => Tapes Abound ) [3] => 
SimpleXMLElement Object ( [0] => Widget100 Series ) )

Если вам нужно значение конкретного узла или узлов на основе некоторых критериев, следуйте примерам из листингов 4 и 5.

Поиск атомарных значений узла означает извлечение нужных значений из XML-документа. При выполнении кода из листинга 4 результатом будет атомарное значение одного узла.

Листинг 4. Использование SimpleXML для отображения названия продукта для конкретного SKU
<?php
$xml = simplexml_load_file("products.xml");
$products = $xml->xpath("/PRODUCTS/PRODUCT[SKU='soft5678']/NAME");
print_r($products);
 ?>
------------------------------------------------------------
OUTPUT:

Array ( [0] => SimpleXMLElement Object ( [0] => Pro Reporting ) )

XPath-выражение /PRODUCTS/PRODUCT[SKU='soft5678']/NAME определяет все узлы, которые соответствуют выражению. В этом случае только один продукт имеет номер SKU, совпадающий с заданным. Если вам нужно найти значение узла в соответствии со своей позицией в дереве XML, вы можете использовать функцию position().

Вы можете использовать условные выражения в XPath для дальнейшего определения местонахождения конкретных узлов. В листинге 5 показан пример использования SimpleXML и XPath с условным выражением.

Листинг 5. Использование SimpleXML для нахождения продуктов, удовлетворяющих условию
<?php
$xml = simplexml_load_file("products.xml");
$products = $xml->xpath("/PRODUCTS/PRODUCT[@category='software' and PRICE > 2500]"); 
print_r($products);
 ?>
------------------------------------------------------------
OUTPUT:

Array ( [0] => SimpleXMLElement Object ( [@attributes] => 
Array ( [category] => software ) 
[SKU] => soft1234 [SUB_CATEGORY] => Business Analysis [NAME] =>
 Widget Reporting [PRICE] => 4500 ) )

Вы, вероятно, заметили, что в листингах 2, 3, 4 и 5 содержится одинаковый PHP код — единственное различие заключается в XPath выражении. Когда вы освоите SimpleXML, вам будет доступна вся мощь языка XPath. Шаги, выполняемые в коде PHP при использовании SimpleXML, можно резюмировать следующим образом:

  1. Загрузить XML-файл в память.
  2. Создать и выполнить XPath выражения с помощью Object->xpath class.
  3. Обработать найденные узлы и значения с помощью ваших навыков в PHP.

Вывод результата в каждом листинге происходит с помощью выражения print_r($products);. Оно выдает значение для отображения в виде массива. В реальности вы скорее всего будете использовать результат в каких-то операциях, выполняемых с помощью PHP.

В листинге 6 используется DOM и DOMXPath для работы с XML и XPath.

Листинг 6. Использование DOMXPath для отображения названия продукта для конкретного SKU
<?php

$doc = new DOMDocument;
$doc->load('products.xml');
$xpath = new DOMXPath($doc);
$products = $xpath->query("/PRODUCTS/PRODUCT[SKU='soft5678']/NAME");
 
foreach ($products as $product)
{
   print($product->nodeValue);
}
 ?>
------------------------------------------------------------
OUTPUT:

Pro Reporting

Последовательность PHP-команд, которые используются при работе с DOM и DOMXPath, ненамного сложнее, чем при работе с SimpleXML. В листинге 6 эти шаги приведены в следующей последовательности:

  1. Загрузить XML-файл в память из DOM-объекта.
  2. Создать XPath-объект из загруженного документа.
  3. Запросить у XML-дерева информацию и получить объект продукции.

Опять же, как только вы научитесь писать фрагмент PHP-кода для работы с DOM, XPath выполнит за вас всю тяжелую работу.


Использование XPath для преобразования

В действительности XML можно преобразовать в XHTML без использования XSLT. Применив свою изобретательность, вы можете развить предыдущие примеры и создать файлы XHTML для отображения, используя только SimpleXML или DOM. Вполне возможно, вам такой подход будет удобнее. Однако, учитывая, что одним из важнейших применений XPath является преобразование в рамках XSLT, и то, что PHP поддерживает XSLT, целесообразно это продемонстрировать. Кроме того, с помощью XSLT можно сэкономить много времени и сил.

Преобразования XSLT в PHP

Чтобы сосредоточиться на PHP и XPath, пример преобразования в этом разделе не использует CSS или действующие URL-ссылки. При преобразовании данных с помощью XSLT имейте в виду, что вы можете включить стили, JavaScript или что-нибудь еще, что необходимо вашим типичным HTML страницам. Кроме того, ваш XSL-файл в приложении, скорее всего будет тщательно организован в такую структуру, которая соответствует вашей среде.

Хорошее понимание XPath необходимо при преобразовании XML-данных в другие форматы, такие как HTML с XSLT.

RSS и Atom-каналы основаны на XML, поэтому XPath является идеальным инструментом для обращения канала и выбора нужных данных. Если предположить, что эта статья имеет собственный фид Atom для различных PHP- и XPath-методов, вы можете использовать одну из XML-библиотек PHP для извлечения записей из канала и отображения их по своему желанию на вашем сайте.

Даже такой простой XSLT-файл, как в листинге 7, в значительной степени полагается на XPath.

Листинг 7. Простой XSLT-файл, который преобразует фид в HTML (article_feed.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<head><title><xsl:value-of select="	 //title"/></title></head>
<table>
<tr><td><xsl:value-of select="//title"/></td></tr>
<tr><td><i>"<xsl:value-of select="//subtitle"" />",</i></td></tr>
<tr><td>by <xsl:value-of select="//author"" /></td></tr>
<xsl:for-each select="//feed/entry"">
<table border="1" > 
<tr>
<td>Title</td><td><xsl:value-of select="title""/></td>
</tr>
<tr>
<td>Summary</td><td><xsl:value-of select="summary""/></td>
</tr>
<tr>
</tr>
</table><br/>
</xsl:for-each>
</table>
</html>
</xsl:template>
</xsl:stylesheet>

Две косые черты (//) указывают XPath, что необходимо сопоставлять первый именованный узел, начиная с корневого узла. Используя только по одному узлу на каждый заголовок, подзаголовок, автора, получаем ярлык, выражающий путь доступа без использования абсолютного пути. Поскольку цикл for-each работает в контексте узла //feed/entry, используются относительные пути для названия и резюме.

Используя XSLT-файл из листинга 7, вы можете написать соответствующий PHP-код для выполнения преобразования, как показано в листинге 8.

Листинг 8. Использование DOM для преобразования XLST
<?php
$doc = new DOMDocument();
$xmlStream = <<<MyFeed
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
<title>Using XPath with PHP</title>
<author><name>Tracy Bost</name></author>
<subtitle type="html">
Let XPath do the hard work for you when working with XML</subtitle>
<link rel="self" type="text/html"
hreflang="en" href="http://www.ibm.com/developerworks/"/>
<updated>15 Aug 2011 22:51:48 +0000</updated>
<entry> 
<title>SimpleXML & XPath </title> 
<summary>If you are using SimpleXML to parse XML or
 RSS feeds, XPath is great to use!</summary> 
<link rel="self" type="text/html" hreflang="en" href=""/> 
<published>21 Apr 2011 04:00:00 +0000</published> 
<updated>21 Apr 2011 04:00:00 +0000</updated> 
</entry> 
<entry> 
<title>DOMXPath</title> 
<summary>If you are using DOM for traversal XML documents, 
give DOMXPath a try! </summary> 
<link rel="self" type="text/html" hreflang="en" href=""/> 
<id>tag:developerWorks.dw,19 Apr 2011 04:00:00 +0000</id> 
<published>12 Aug 2011 04:00:00 +0000</published> 
<updated>12 Aug 2011 04:00:00 +0000</updated> 
</entry> 
<entry> 
<title>XMLReader with XPath</title> 
<summary>For complex XML document reading and writing, 
using XPath with XReader can ease your burden!</summary> 
<link rel="self" type="text/html" hreflang="en" href=""/> 
<id>tag:developerWorks.dw,19 Apr 2011 04:00:00 +0000</id> 
<published>08 Aug 2011 04:00:00 +0000</published> 
<updated>08 Aug 2011 04:00:00 +0000</updated> 
</entry> 
</feed> 
MyFeed;

  
$doc->loadXML($xmlStream);
$xpath = new DOMXpath($doc);
$xslt = new XSLTProcessor();
$xsl = new DOMDocument();
$xsl->load( 'xsl/article_feed.xsl', LIBXML_NOCDATA);
$xslt->importStylesheet( $XSL );
print $xslt->transformToXML( $XML );
?>

------------------------------------------------------------
OUTPUT: 

<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Using XPath with PHP</title></head><body><table><tr>
<td>Using XPath with PHP</td></tr><tr>
<td><i>"Let XPath do the hard work for you when working with XML",</i></td>
</tr><tr><td>by Tracy Bost
</td></tr><table border="1"><tr><td>Title</td>
<td>SimpleXML & XPath </td></tr>
<tr><td>Summary</td>
<td>If you are using SimpleXML to parse XML or RSS feeds,
 XPath is great to use!</td>
</tr><tr/></table>
<br/>
<table border="1">
<tr><td>Title</td>
<td>DOMXPath</td>
</tr>
<tr><td>Summary</td>
<td>If you are using DOM for traversal XML documents, 
give DOMXPath a try! </td>
</tr><tr/></table><br/>
<table border="1">
<tr><td>Title</td><td>XMLReader with XPath</td>
</tr>
<tr><td>Summary</td>
<td>For complex XML document reading and writing, 
using XPath with XReader can ease your burden!</td>
</tr><tr/></table><br/>
</table>
</body>
</html>

Обратите внимание, что в листинге 8 нет выражения $xpath->query(), как показано в листинге 6. Все XPath-выражения находятся в XSL-файле. Просто используйте DOM, чтобы импортировать таблицы стилей, а затем дайте ему выполнить преобразование!


Заключение

В этой статье вы познакомились с XPath и методами его использования в среде PHP5 при работе с XML. Как и многие другие библиотеки, доступные в PHP, XML-библиотеки позволят вам как разработчику сосредоточиться на функциональных требованиях, а не на низкоуровневом подключении классов и объектов. XPath может помочь справиться с громоздкими задачами обнаружения и анализа данных в XML. В зависимости от ваших потребностей можно дополнительно использовать SimpleXML, DOM, XML или библиотеки интегрированных сред, таких как Zend Framework. К счастью, все они работают с W3C XPath в стандартной форме. Поэтому когда вам в следующий раз потребуется загрузить XML-файл или поток данных и найти значения для обработки – не пугайтесь!

Ресурсы

Научиться

Получить продукты и технологии

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=XML, Open source
ArticleID=806136
ArticleTitle=Используем XPath с PHP
publish-date=03192012