Что такое код xpath_eval


Содержание

xpath_eval

xpath_eval — ��������� XPath Location Path � ������ ������.

��������

array xpath_eval (object xpath context)

��� ������� — �����������������. ���������, ��� � �� ���������, ��� ����������������� ��� ������ ������� ����� ���� �������� � ������� ������� ��� ��� ��������������. �� ������ ������������ ��� ������� ������ �� ���� ����� � ����.

�������� ������������ XML � ������ XPath � J2SE 5.0

������ �� ����� ������������, ����������� � Java 2 Platform, Standard Edition (J2SE) 5.0 (������� �������� Tiger), �������� ����� �������� ������������ XML � javax.xml.validation � ���������� XPath � javax.xml.xpath . �� ������ ������ Tiger ������ SAXParser � DocumentBuilder Java API ��������� XML (JAXP) �������������� ��� �������� ������������ XML. ����� API �������� ������������ XML ��������� ��������� ��������� �������� ������������ � ������� XML ����������. ������ ������������ ���������, ������ �������, ������������ ��������� �����. ������� ��������� ���������� �������� ������������ XML.

�������� ������������ XML

�������� ������� �������� �������� ������������ XML ��������� �������� ������������� �������. ������ ������ ���������� �������� ������������, �������� ������ Schema �� �������� ��� ������ ������ Validator . ������� Schema ������ ��������� �� �������� SchemaFactory . ��������� ������ newInstance() ��������� ��������� ������� SchemaFactor y ��������� �������� XML �����. ��������������� ��� ������������� ������ �������:

�������� ������������ ���������� ��� ������ ������ validate() ������� Validator . ��� �������, ������ ����� ������� �������� ������� javax.xml.transform.Source , ������� ����� ���� ���� SAXSource , ���� DOMSource , � ����������� �� ����� ������������.

���� �������� ������ ����, ������������ ������ �������� ������������ ��������� XML ��� ������ XML �����World Wide Web Consortium (W3C) XML Schema , ������ ��������� WXS.

try <
// �������������� XML ��������� � ������ DOM.
DocumentBuilder parser =
DocumentBuilderFactory.newInstance () .newDocumentBuilder () ;
Document document = parser.parse ( new File ( «myXMLDocument.xml» )) ;

// �������� ������� SchemaFactory ��������� �������� � WXS �������.
SchemaFactory factory =
SchemaFactory.newInstance ( XMLConstants.W3C_XML_SCHEMA_NS_URI ) ;

// �������� WXS �����, �������������� ��������� Schema.
Source schemaFile = new StreamSource ( new File ( «mySchema.xsd» )) ;
Schema schema = factory.newSchema ( schemaFile ) ;

// �������� ������� Validator, ������������� ��� ��������
// ������������
// ���������.
Val > () ;

// ������� ������������ ������ DOM.
validator.validate ( new DOMSource ( document )) ;

> catch ( ParserConfigurationException e ) <
// ��������� ������
> catch ( SAXException e ) <
// ��������� ������ � ������ �������������� ���������
> catch ( IOException e ) <
// ��������� ������
>

��������, ��� ��� ������ ������ newInstance() ��� ���������� ���������, ������������ ��� ����������� �����. � ����� ������� ������������ ����������� ������ �������� W3C XML Schema. ������ ����� ������ ������� ������� ����������� ��������� ������ XML ���������. WXS �������������� ������������ W3C � �������� W3C �������������.

�������, �������� ��������������� ��� ��� ���������� XML �����:

�����, ������� ��������� �������� W3C XML Schema, � �������� ����� �������� ������������ ������ XML ���������:

���� �������� ������������ ������ �������, �� ��������� ���������� ��� ������. ������, ������� ������ �������� � ������� month .

� ������ ������, ������ Validator ������� ������ SAXException . ���� ������������ ������ ��������� ����� ��������� �� ������:

������ XML ����

��� ���������� ������� SchemaFactory ������� ��������� W3C XML Schema. ���� �� �� ������� �� ������������� W3C XML Schema, ���� ���������� �� ������� ��������.

� XML ������ �������� �����������, ������� ����� ���� ��� ��������, ��� � ��������. �� ������� ������, ������� ��� ��������� � ���� ������ ��������, � �� ����� ��� ������� �� �������� ��. (������ ���� ����� � ������ ��������, ������, � ������ ������ ��� �� ���������������.) � �������� �������, ������� �������� �����, ������������ ������� fullname , ���������� �������� firstname , middlename � lastname , � ��������������� �������.

�������� ��������� ������ XML ����� �������� ������� schema . � ��������������� ����������� ����� ������������ ������� xmlns , ��������, ��� �������� � ���� ������, ������������ ������, ����������� ������������ ���� «http://www.w3.org/2001/XMLSchema» .

�������� � �������� �������� ����

�������� � �������� �������� ���� �� �������� � ���� ������ ��������� � ���������. ��� ���������� ������ ����� ��������� �����. ������ ���� ����� ���� ������ �� ������������ ����� XML ����� ��� �� ��� ����� ���� ������ ���� ��������������. �� ������ �������� ����������� ��� ���� ������, ��� �����, ����������� ��� ����������. ����� �� ������ ������ ������, �������� ����� ��������������� �������� ������. ����� ���� ��������� �������� ������� ���������:

����� ���������� �������� ����������� ���� ������, ������������ � XML ������:

��� ������� ��������� ����� ���� ������ �������� �� ��������� � ������������� ��������. �������� �� ��������� ������������� ��������, � ��� ������, ����� �� ������ ������ ��������. ������������� �������� �������������, �����, ������������� � �� ����� ���� ��������. ��������:

��� �� ��� �� ����������� ��������, �� ������ ���������� � ��������, ������� �� ���, ���, �������� �� ��������� � ������������� ��������. �� ��������� �������� �������� �� �������������, �� �� ������ ������ �� ����������� ���������� ��� ������ �������� use .

�������� �������� ����

������� ��������� �������� �������, ���������� ������ �������� � ��������. ������� ���������� ������� ������� fullname , ���������� ������ �������� firstname , middlename � lastname .

�� ������ ���������� ������ ������������������ ����� ���������. ������ ������: ������� fullname ����� ���� �������� ��������, ��� �������� ����. ��������, ��� �������� �������� firstname , middlename � lastname ��������� � ��� sequence . ��� ����� �������� ������������������ ������������� �������� ���������: ������ � firstname , ������ � middlename , ������ � lastname .

������ ������: �� ����� ������������ � �������� fullname ������� type , ����������� �� ������ ������� ���. ���� �������� ������ �������� �������� ���� � ������ �� ���� �� �������� fullname :

������������� ������� ������� �������� ��, ��� ��������� ��������� ����� ��������� �� ���� ������� ���. �� ����� ������ �� ������ ��� ������������� �������� ���� ������� ����� ������� ���, ��������� ����������, ��� ��������:

� ����� W3C XML Schema ���������� � ������ �������� ��������, �������������� � ������� 1.

��������������!
������� 1.����������

��������� �������
all ����������, ��� ������ �� �������� ��������� ������ ������������� ���� �� ���, �� � ����� ������������������.
choice ����������, ��� ����� ������������� ����� �� �����������
sequence ����������, ��� �������� �������� ������ ���������� � ������������ �������
@maxOccurs ���������� ������������ ���������� ������� ������������ ��������
@minOccurs ���������� ����������� ���������� ������� ������������ ��������
group ������������ ��� ����������� ��������������� ������� ���������
attributeGroup ������������ ��� ����������� ��������������� ������� ���������

������ ������ �������� ������� ��������� ������������ XML ����� � ������ ����������� ����� �������� ��� ����������� � ����������. �������������� ���������� �� ������ ����� �� ��������, ����������� W3C XML Schema.

������ ��������� XPath � JDK 1.5

������ �������, ����������� � �������� XML � JDK 1.5, �������� java.xml.xpath . ������ ����� ������������� API ��� ������ ���������, ��������� �� ������ XML Path Language (XPath) ������ 1.0. XPath ��������� �������� ���� ������ ��������� ������ ���������� (DOM) XML. � XPath ����� ���������� ������� �������������� ����� � ���������� �� ���������� boolean, double ��� string. � ������������ Javadocs ���������� ��������� ����������: �XPath ������ � 1999 ���� � �������� ���������� ������ XSLT � Xpointer, �� ������ ���� ���������� ��� ��������������� ����, ��� ��� ���� ��������� XPath �������� �������� ������� ���������� ����� ���� DOM API.

�������� XPath

������� ���������� ��������� XPath � ������� �� ����������. ���� �������� ������ �������� ��������� XPath:

������ ��������� �������� ��� ����. ��� �������� ��� �������� author , ���������� ��������� ��� �������� book . ������� book �������� �������� ��� �������� ��������� ����. ��������, ���� ������� ���������� ���� �������� ������� library, �� ���������� ��������� XPath � book/author ������� ��� �������� author �� ������������ ����� ����:

�������� ����� ����� ���� ����� ���� ����� XML DOM, � ��� ����� � �������� ����.

��������, ��� ������� author ������ ���� ������ �������� �������� book . ���������� ����������� �������� // , ���������� ���� ����� ������� � XML ��������� ��� �������� ��������� ����. ��������, ��������� ��� ��������� ������� ��� �������� author ��� ��������� ����.


� ������� 2 ������������ ��������� �������� ��������� XPath.

������� 2. ��������� ��������� XPath

���� ��������
../author �������� ��� �������� author , ���������� ��������� ��� ��������� ����.
* �������� ��� �������� �������� ��������� ����
*/author �������� ��� �������� �������� author ��� �������� ��������� ����
/book/author �������� ��� �������� author ���������� ��������� ��� �������� book , ������� � ���� ������� �������� ��������� ��� ��������� ���� ���������.
./book/author �������� ��� �������� author ���������� ��������� ��� �������� book , ������� � ���� ������� �������� ��������� ��� ��� �������� ��������� ����.

����� ���������, ���� XPath ����� �������� � ����������, �������, ������������� � ������� ������ DOM ������. � ������� 3 ��������� ��������� ��������.

������� 3. ������� ������������� ����� XPath

���� ��������
author/@name �������� ������� name �������� author
author/node() �������� ����� ��� ���� (�����, �����������, ��� ���������� ���������).
author/text() �������� ��������� ���� �������� author
author/comment() �������� ��� ����������� � �������� author .
author/processing-instruction() �������� ��� ���������� ��������� � �������� author .

��������� XPath ��������� ������ ���������� �����, ��������� ��� ������ ����� XPath. ��������� ������������ � ���� � [expression] . ��������� ������ �������� ��� �������� foo , ���������� ������� include , ������� �������� true .

��������� ����� ��������� ���� �� ������ ��� ����� ������� ������:

������������� XPath API

��������� ������ ������������ ���������� XPath API ��� ������ ���� �� ������ ���� �� XML ���������.

��������, ��� XPath API ��������� ���������������, ��������� ���� � �������, ��������� ����� Boolean , Number � String . ������������ ��� ������������ ���������� QName � ������ ������ ������ ��������� XPathExpression.evaluate() , ��� �������� � ������� ���� (������ ��������). ����������� �������� QName ���������� � ���� �������� � ������ XPathConstants:

  • XPathConstants.NODESET
  • XPathConstants.NODE
  • XPathConstants.STRING
  • XPathConstants.BOOLEAN
  • XPathConstants.NUMBER

� ������ ������ ���� Boolean , ������������ �������� Boolean.TRUE , ���� ������ ���� ��� ����� �����. � ������ ������ ������������ �������� Boolean.FALSE . ��� String ������ ��� ��������� ������ �� ��������� �����, ����� ���������, ����� ������������ ��� ����� ���������� ���������. �������, ��� ������ ���� Number , ������������ ������� �������������� ���� ������ � ��� double .

��� XML ���������, ��������������� � ������ �� ������ ��������� ��������� ��� ��� ������ �������� year � ���� ����, ������ � �����:

DocumentBuilder builder =
DocumentBuilderFactory.newInstance () .newDocumentBuilder () ;
Document document = builder.parse ( new File ( «myXMLDocument.xml» )) ;

XPath xpath = XPathFactory.newInstance () .newXPath () ;
String expression = «/birthdate/year» ;

Node birthdateNode = ( Node ) xpath.evaluate ( expression, document, XPathConstants.NODE ) ;

System.out.println ( «Node is: » + birthdateNode ) ;

String birthdateString = ( String ) xpath.evaluate ( expression, document, XPathConstants.STRING ) ;

System.out.println ( «String is: » + birthdateString ) ;

Double birthdateDouble = ( Double ) xpath.evaluate ( expression, document, XPathConstants.NUMBER ) ;

System.out.println ( «Double is: » + birthdateDouble ) ;

> catch ( ParserConfigurationException e ) <
System.err.println ( «ParserConfigurationException caught. » ) ;
e.printStackTrace () ;
> catch ( XPathExpressionException e ) <
System.err.println ( «XPathExpressionException caught. » ) ;
e.printStackTrace () ;
> catch ( SAXException e ) <
System.err.println ( «SAXException caught. » ) ;
e.printStackTrace () ;
> catch ( IOException e ) <
System.err.println ( «IOException caught. » ) ;
e.printStackTrace () ;
>

����������� ���������� ������� ������� �����:

XML � XPath

XPath � ��� ���� ��� ������ ���������� ������ XML ���������.

��� ����� XPath?

  • XPath — ����������� ���� ��� ����������� ������ XML ���������
  • XPath ���������� ���������� ��������� ��� ��������� �� XML ����������
  • XPath �������� ���������� ����������� �������
  • XPath � ������� ������� � XSLT
  • XPath ����� ������������ � XQuery, XPointer � XLink

���������� ��������� XPath

XPath ���������� ���������� ��������� ��� ������ ����� ��� ������� ������� � XML ���������. ��� ���������� ��������� ������ �� �� ���������, ������� ����� ������� ��� ������ � ������������� ��������� ���������.

� ��������� ����� ��������� XPath ����� ������������ � JavaScript, Java, XML ������, PHP, Python, C � C++, � ����� �� ��������� ������ ������ ����������������.

XPath ������������ � XSLT

XPath �������� ������� ������������ ��������� ��������� XSLT. ��� ������ XPath ���������� ��������� ��������� XSLT.

������ XPath

��� ������������ XPath ����� ������������ ��������� XML ��������:

� ����������� ���� ������� ������������ ��������� ��������� XPath � ��������� �� ������:

Java XPath API

������� � XML-���������� �� Java-��������

���� ���������� ������� ����-�� ������ ���� ������, ��� ����� ������� ����� ��������? «����������, ����� ���� ���� ������» ��� «����� �� ���� ����� �������� �����. ������� ������. ������ ��� ��������. ������� �������. ������ �������� ��������. ������� ������� � ����� � �������. ������� � ���������� ��������. ������ ���� ������ ����� ��������. ������� ������. ������ �������� ����� ������. ������� ��� � �����. ������� �� ������. ����� ����������� �����». ��� ������! ������� ����� �������� ����� ���������� ����, ����� �������������� ������ ������, ������������� ���� ����������� ���� «����������, ����� ���� ���� ������».

����� �������� � ������������ ����� ����� ������. ����� ������� «����� ����� ��������������», ��� ������� ��������� ������ ������ � ��������� ���� ������. ��� ��� �������� ������ ����� ���������� ������, ����� ����������� ���������� ����, ������� �������� �������� ��������� ���� «����� ��� �����, ���������� ����� �����������», � ����� ������� �������� ��������� ����� �������� ��� ���������� ��� ������.

XPath

����� ���� ������ �������� Structured Query Language (SQL) � ��� ����, ������������� � ���������������� ��� ������ � ������������ ����� ����������� ��� ������. ������ ������, ����� ��������� ������ �������� �������� � ���� Object Query Language (OQL) � XQuery. ������ ��������� ������������ ���� ������ �������� XPath, ���� ��������, ������������� ��� ������ ���������� � XML-����������. ��������, ������� ������ �� ����� Xpath ��� ������ ��������� �������� ���� ����, ������� ������� �������� ��� ��������� (Neal Stephenson), �������� �������� ���:


��� ���������, ��� ��� ���������� ������������ �������� � �������������� ������� DOM ������ �������� ��� � �������� 1:

������� 1. ���, ������������ DOM, ��� ������ �������� ����, ���������� ����� �����������

������ ������ � ������ ���, �� DOM-��� � �������� 1 ���-���� �� ��� ����� � ������, ��� ������� ��������� �� ����� XPath. ����� ��� ����� � ������� ��������, �������� � ������������? ��-�����, ����� ��������!

������ ��� �� �� �� ��� �����������, XPath � ��� ���-���� �� ���� Java, ����������, XPath ���� �� �������� ������ ����������������. ���������� ����� ����� �����, ������� ���������� ��������� � ������� XPath, ������� ���� �������, ������� ������ ������������. ��������, XPath �� ����� ����� ��� �����, ��� ������� ������ ������������ International Standard Book Number (ISBN) ��� ����� ���� �������, ��� ������� ��������� ���� ������ ����������, ��� ��������� �������� ����������� � ������� ������. � �������, ����� ������������� XPath � ���������, ���������� �� Java, � ������, �������� ��� ������ �� ���� �����: Java � ��� ���� ��� �����, � �������� ������ ����������� Java, � XPath ��� ����� ����, � ��� ������ ����������� Xpath.

�� ��� ��� ����� ����������� ���������������� ���������� (API), � ������� �������� Java-��������� ��������� XPath-�������, ������� �� ���� ���������� XPath. Xalan ���� ���� ����� API, Saxon � ������, � ��������� ���������� ����� ��������� ����������� ������ API. ��� �������, ��� ��� ���������� �������� � ������ ��������. � ����� ������ �������� �� ��� ������ ���������� � ������������� ���� �������� ������������ � ���������� ������������ �� ����������� ������������� �������������.

�� ���� ������� � Java 5 ������� ����� javax.xml.xpath � �� ������������� ���������� � ��������-����������� ������ ���������� XPath. ���� ����� ����� �������� � Java ������ 1.3 � ����, ���� ������������� ���������� Java API for XML Processing (JAXP) 1.3. �� ����� ��������� ��������� Xalan 2.7 � Saxon 8 ����� �������� � ���� ���������� ���� ����������.

������� ������

������ ����� ������������������ ��� ��� �������� �� ��������. ����� ����� ��������� ����������� ��������� ������. ��������������, ��� ��� �������� ���� ������ ����, � ������� ����� ���� ������� �����, ���������� ����� �����������. ���������� �����, ��� ������ ���� ����� ����� �� ���, ��� � �������� 2:

������� 2. XML-��������, ���������� ���������� � ������
����������� �������

The XPathFactory � ��� ����������� �������. ������ �������������� ������������ ������� ��������� ������� API ��� ��������� ���������� ��������� ������, ����� ��� DOM, JDOM � XOM. ����� ������� ����� ������, ���������� �������� Uniform Resource Identifier (URI), ���������������� ��������� ������, ������ XPathFactory.newInstance() . ��������, http://xom.nu/ �������� ��������� ������ XOM. ������ �� ��������, DOM � ��� ������������ ��������� ������, �������������� API �� ������ ������.

������ XPath, ������� �������� ��� ����������� ����� �� ���������, ���������� �����: //book[author=»Neal Stephenson»] . ����� ����� ������ �������� ���� ����, ��������� ����� ���� ��������� ��������� ������� � ��������� ����� ��������� ��������� �������: //book[author=»Neal Stephenson»]/title . �������, ������ ��, ��� ������������� ���������� � ��� ����� ����-������� �������� title . ��� ����� ��������� ��� ���� ��������� ���������, ������ ��������� ����� ���������: //book[author=»Neal Stephenson»]/title/text() .

������ ���������� ���������, ������� ���������� ���� ��������� ������ � ��������� �� ����� Java � ������� ����� �������� ���� ��������� ����. ������ ����� ���������� ��������� �������� � ������ Document . ��� ��������, ����� ��������, ��� ������ ���� ���������� � ����� books.xml � ������� ��������. ���� ��� ������� �������� ����, ������� ������������ �������� � ������� ��������������� ������ Document :

������� 3. ��������� ��������� � ������� JAXP

����, ��� ����� ���� ����������� JAXP � DOM, ������ ������.

������ ������� XPathFactory :

����� ������������ ��� ������� ��� �������� ������� XPath :

XPath ����������� XPath-���������:

����������� ����������: ���� ���������� ������������ ��������� XPath ������ ���� ���, �� ����� ���������� ��� ���������� � ������ ����� ������� ��������������� ����� evaluate() � ������� XPath . ������ ���� ���������� ������������ ���� � �� �� ��������� ��������� ���, �� ���������� ������� ��������� ������� ����������� �������.

�������, ���������� ��������� ������ XPath ��� ��������� ����������. ��������� ����������� �� ��������� � ������������� �� ��������� ����, ������� � ������ ������ �������� ���� ��������. ����� ���������� ���� ������ ��� ������������� ����������. � ������� ��� NODE �������� ��� ��� ���������� ���������� ���������:

������ ����� ��������� ��������� � DOM NodeList , ����� ���������� ���������� � ������� ��������, ����� ����� ��� ��������:

� �������� 4 ���� ���� ��� ������ � ���� ���������. ���������� ����� ��������, ��� ������������� ��������� ������� ����� ������� ��������� ����������, ������� ����� �������� � ������ throws , ���������� ���������� ����, �������������� ����:

������� 4. ��������� ��� ������ � XML-��������� � ������� �������������� XPath ���������

������ ������ XPath

��� ���������� ���������� �� ���� ��������� ������ ����������������, ����� XPath � Java, ����� ������� ��������� �������� «����» ���, ��� ����������� ��� ����� ����������������. �� ��� ����������� ���������� ������. XPath � Java ����� ��������� ������� ����� ������. � ��������� XPath 1.0 ����� ������ ������ �������� ���� ������:

Java, ����������, ����� ����������� ������� ���������� ��������� ����� ������, ������� ��������� ���� ������, ������������ �������������.

������ ��������� XPath, �������� ������������� ��������� �������� XML-���������, ���������� ��������� ���� node-set. ������ ���� ����� ������ �����������. �������� ��������� �� ����� XPath count(//book) ���������� ���������� ���� � ���������. ��������� ������ ������� ��������� �� ����� XPath count(//book[@author=»Neal Stephenson»]) > 10 ����� ��� ���������� boolean: ������������ �������� ����� true, ���� ������ ������ ���� ���� ���������� ���������� � ���������, � false, ���� ������ � �����.

����� evaluate() ���������� ��������� ���� Object . . ��� ������ ����� ����������� ������� �� ���������� XPath-���������, ����� ��� � ��� ������������� ������. � ����� ������, XPath

  • number c������������ � java.lang.Double
  • string c������������ � java.lang.String
  • boolean c������������ � java.lang.Boolean
  • node-set c������������ � org.w3c.dom.NodeList
XPath 2

�� ��� ��� ����������, ��� ������������ XPath 1.0. XPath 2 ����������� ��������� � �������������� ������� �����. �������� ��������� ��������� � Java XPath API ��� ��������� XPath 2 � ��� �������������� ��������� ��� ����� ����� ������������ ��������, ��������� � XPath 2.

����� ����������� XPath ��������� � Java, ������ �������� ���������� ��� ������������� ���������. ���������� ���� ��������� ����� ������������ ����������, ��� ��� ����� ���������� ��� ��������� � ������ javax.xml.xpath.XPathConstants �� ���������� �������:

  • XPathConstants.NODESET
  • XPathConstants.BOOLEAN
  • XPathConstants.NUMBER
  • XPathConstants.STRING
  • XPathConstants.NODE

���������� ��������, ��� �������� XPathConstants.NODE �� �������� � ���������������� ����� ������ XPath. ��� �������� ������������ ������ �����, ����� ��� �����������, ��� ��������� �� XPath ������ ��������, ��������� �� ������������� ���� ��� ����� �� ��������� ����� ������ ��������. ���� ��������� �� XPath ���������� ����� ������ ���� � ��� ��������� ��� ������������� ��������� ��� XPathConstants.NODE , �� evaluate() ������ ������ ��������� � ��������� ����, ��������������� ��������� ���������. ���� ��������� �� ����� XPath ������ ���������� ������ ������ � ��� ��������� ��� ������������� ��������� XPathConstants.NODE , ����� ����� evaluate() ������ null.

���� ������������� �������������� ���� �� ����� ���� �������, �� ����� evaluate() ���������� �������������� �������� ���� XPathException .

�������� ������������ ����

���� �������� XML-��������� ���������� ������������ ����, �� ��������� XPath ��� ������� ������ �� ����� ��������� ������ ������������ �� �� ������������ ����. XPath-��������� �� ��������� ����� �� �� ��������, ����� ������ ������������ URI ���� �� ������������ ����. ����� XML-�������� ���������� ������������ ���� �� ���������, ��������� XPath ������ ������������ �������, ���� ���� ������� �������� ��� �� ����������.

������ Java-��������� � ��� �� XML-���������, ������� ������� ���������� ������������ ���� �� �����������. ������ ����� ���������� ������������ ������, ������� ���������� �������� � ������������ ���� URI. ���� ������ � ��������� ���������� javax.xml.namespace.NamespaceContext . ��������, �����������, ��� �������� �������� ���������� � ������ � ������������ ���� http://www.example.com/books, ��� � �������� 5:

������� 5. XML-�������� ���������� ������������ ���� �� ���������

��������� XPath, ������� ������� �������� ���� ���� ���� ���������� ������ ���������� ��� �����: //pre:book[pre:author=»Neal Stephenson»]/pre:title/text() . ������ ���������� ���������� ������� pre to the URI http://www.example.com/books. � URI http://www.example.com/books. ������� �������, ��� ��������� NamespaceContext �� ����� ���������� �� ��������� � ��������� ������������ Java (JDK) ��� JAXP, �� ��� ���. ��� �� �����, �� ��� �� ������ ������� ����� ���������� ��������������. � �������� 6 �������� ������� ���������� ��� ������ ������������ ����. ���������� ����� ���������� ������� xml .

������� 6. ������� �������� ��� ���������� ������ ������������ ���� � ������������� ����, ������������ �� ���������

�� ��� �� ������ ������������ ����������� ��� ������������ ���������� ���� � ���������, � ����� ��� ���������� �������, ������� ��������� ������� �������� ������������ ���� ����������� ������������.

����� �������� ������� NamespaceContext ���������� ���������� ��� � ������ XPath ����� ����������� ���������. ������ ����� ������������ � �������� �� �� ��������, ��� � ������. ��������:

������� 7. ������ XPath, ������� ���������� ������������ ����

�������������� �������


� ��������� ������� ������� ���������� ���������� ������� �� ����� Java ��� ������������� ������ � ����������� �� XPath. ��� ������� ����� ��������� ������, ������� ������ ��� ���� ���������� ��� ������������� ������� XPath. ������ ��� ������ ���� ���������� ���������, � �� ������ ������������� ��������. �� ���� ��� �� ������ ����� �������� ��������. (������� XPath ����� ���� ��������� � ����� ������� � ������������ ����� ���).

������� ����������, ����������� ����� Java XPath API ������ ������������� ��������� javax.xml.xpath.XPathFunction . ���� ��������� ���������� ������������ ����� evaluate():

���� ����� ������ ���������� �������� ������ �� ���� ����� � ����� Java, ������� ����� ���� �������������� � ���� ������ XPath:

� �������� 8 �������� ������� ����������, ������� ��������� ����������� ����� ���� ISBN � ���������� �������� ���� Boolean . �������� ������� ��� �������� ����������� ����� ����������� � ���, ��� ������ ������ ���� ���������� �� ���� ������� (�� ���� ������ ����� ���������� �� �������, ������ � �� ��� � ��� �����). ���������� �������� ������������ � ������������� ������� �� ������� �� �����������. ���� ������� ����� ������, �� ��������� ����� ����� X.

������� 8. ������� ���������� XPath ��� �������� ���� ISBN

��������� ��� � ��� ������� ������� ���������� ��������� ��� Java-���������. ��� ����� ���������� ���������� javax.xml.xpath.XPathFunctionResolver � ������ XPath ����� ����������� ���������. ��������������� ������� ���������� XPath-��� � URI ������������ ���� ��� ������� � Java-����� � ��������� �������. � �������� 9 �������� ������ �������� ��������������� �������, ������� ���������� ������� ���������� valid-isbn � ������������� ���� http://www.example.org/books � ����� �� �������� 8. ��������, ��������� �� XPath //book[not(pre:valid-isbn(isbn))] ������� ��� �����, ��� ���� ISBN �� �������� �������� �� ����������� �����.

������� 9. �������� �������-���������� val >

��� ��� �������-���������� ������ ���������� � ������������ ����, ���������� ������������ ������ NamespaceResolver ��� ���������� ���������, ����������� ������� ����������, ���� ���� ��������, � ������� ���������� ����� �� ���������� ������������ ����. ��� ��� XPathFunctionResolver , XPathFunction � NamespaceResolver �������� ������������, �� ����� ������������ �� � ����� ������, ���� ��� ������.

����������

����������� ����� ������ ������� �� ������������� ������ ���������������� ���� SQL � XPath, ��� �� ������������ ������, ����� ��� Java � C. ����������� ����� ������������� ������� ������ �� ������ �� �������� ������, ����� ��� Java � C, ��� �� ������������� ������ ��������� SQL � XPath. � �������, ����� ���������� ������������ � ������������� �����, ��������� ����� ����� API, ��� Java Database Connectivity (JDBC) � javax.xml.xpath . ��� ������ � ������ ������ � ���� ����������� � ������ XML, ������� javax.xml.xpath ���������� ����� �� ������ �����������, ����� ��� ���� java.sql .

������� ��� ����������

������� ����

  • �������� ������: The Java XPath API (EN).
  • «Get started with XPath 2.0» (EN): ��������� ��������� ���� � ������������� XPath 2.0, ��������� ��������� ������ ����� ������� ������� � ������� ����� ������ ������.
  • «Working with JAXP namespace contexts»(EN): ���� ���� ������������ ������������� ������������ ����.
  • XML in a Nutshell (Elliotte Rusty Harold and W. Scott Means, O’Reilly, 2005): �������� ��� ������ ����������� �� XML, ���������� �������� XPath 1.0, DOM � JAXP.
  • ������ ���������� Java ����� developerWorks ������: �������� ��� ���� ����� ������, ���������� ���������� ��� ���� �������� ���������������� �� Java.
  • ������������ IBM XML 1.1: ������� ��� ����� ����������������� ������������� IBM �� XML 1.1 � ������������� ����������� (EN).
  • ������ JAXP: �������� JAXP 1.3 ��� Java 1.3 � 1.4 � java.net (EN).
  • Xalan 2: ������� � ������ XSLT, �������������� XPath API (� ������� �������������� � ���� ������) � ��������������� �������� Apache Project (EN).
  • SAXON 8: ���������� ������ XSLT, ���������� �������� �������� Michael Kay. ���� ������ ����� ������������ XPath API, ��������� � ���� ������ (EN).
  • IBM trial software: �������� ���� ��������� ������ � ������� ������������ �����������, ������� ����� ��������� ��������������� � ����� developerWorks (EN).

�����������

������� ��� ����������������� ��� ���� ����� ��������� ����������� ��� ����������� �� ���.

���������� ��������� XPath � ������� ������ XPathNavigator Evaluate XPath Expressions using XPathNavigator

����� XPathNavigator �������� ����� Evaluate ��� ���������� ��������� Xpath. The XPathNavigator class provides the Evaluate method to evaluate an XPath expression. ����� Evaluate ��������� ��������� XPath, ��������� ��� � ���������� ��������������� ��������� W3C ��� XPath Boolean, Number, String ��� Node Set, ���������� �� ���������� ���������� ��������� XPath. The Evaluate method takes an XPath expression, evaluates it and returns a W3C XPath type of Boolean, Number, String, or Node Set based on the result of the XPath expression.

����� Evaluate The Evaluate Method

����� Evaluate ��������� ��������� XPath, ��������� ��� � ���������� �������������� ��������� Boolean (Boolean), Number (Double), String (String) ��� Node Set (XPathNodeIterator). The Evaluate method takes an XPath expression, evaluates it, and returns a typed result of Boolean (Boolean), Number (Double), String (String), or Node Set (XPathNodeIterator). � �������, ����� Evaluate ����� ������������ � �������������� ������. For example, the Evaluate method could be used in a mathematical method. � ��������� ������� ���� �������������� ���������� ��������� ���� ���� � ����� books.xml . The following example code calculates the total price of all the books in the books.xml file.

� ������� � �������� ������� ������ ������������ ���� books.xml . The example takes the books.xml file as input.

������� position � last position and last Functions

����� Evaluate ����������. The Evaluate method is overloaded. ���� �� ������� Evaluate ��������� ������ XPathNodeIterator � �������� ���������. One of the Evaluate methods takes an XPathNodeIterator object as a parameter. ������ ���������� ����� Evaluate ��������� ������ Evaluate, ������� ��������� � �������� ��������� ������ ������ XPathExpression; ������������ ������� ������� � ���, ��� ������ ����� ��������� ���������� � �������� ��������� ������ ����� ��� ����������� �������� ���������, � ������� ����� �������������� ����������. This particular Evaluate method is identical to the Evaluate method that takes only an XPathExpression object as a parameter, except that it allows a node set argument to specify the current context to perform the evaluation on. ���� �������� ��������� ��� ������� position() � last() , ��������� ��� �������� ������������ �������� ���� ���������. This context is required for the XPath position() and last() functions as they are relative to the current context node. ���� ������� position() � last() �� ������������ � �������� ���������� � ���� �������, ��� ������� ������� ������ �� ����� ����� ��� ���������� ����������; ����� ������� position � last ���������� �������� 0 . Unless used as a predicate in a location step, the position() and last() functions require a reference to a node set in order to be evaluated otherwise, the position and last functions return 0 .

xpath_eval

xpath_eval — ��������� XPath Location Path � ������ ������.

��������

array xpath_eval (object xpath context)

��� ������� — �����������������. ���������, ��� � �� ���������, ��� ����������������� ��� ������ ������� ����� ���� �������� � ������� ������� ��� ��� ��������������. �� ������ ������������ ��� ������� ������ �� ���� ����� � ����.

���� �������� XPath

��� ����� ���� �������� XPath

�������� XPath �������� �� ��� ����, ��� ������ ����������������� �������� � �������� XML ���������. �������� ���� ���������� ��� ��� �� ������������ W3C, ������� �������� ������� ������������ �� ��� ����������� ���� ��������, � ����� �� XSD, XSL � ������ ������, ��������� � XML ������������. �� ��������� � XML ��������� XPath ��������� � ��� �� ����, ��� � SQL �� ��������� � ����������� ���� ������. � ������ ������� XPath �������� ������ ���������� ��������� �������� ����� � �������� �������� ���������, ��������� ��� XML ��������, ��� � ��������� ��������� �����, �������� ���������� �������������. ������ � ����� Path (����) � �������� ���������. ������ XPath � ��� ���� � ���������� ���� ��� ����� XML ��������� ������������ ��������� ���������. ���������� ������� ����� ���� ��� ��������, � ����� �������� ��� ����� ������ ������� ���������. ��������� ������ ����������, ��� ����� ���������� XML ������� �������� �������� ��������� �������� ���������� ��� ����������� Microsoft Windows, � ���������� XPath, � �������, ���� � ������� Microsoft Office.

������� XPath � ����������� �� ���������:
���� �������� ������� = ��������, �� XPath = MyComputer/C/Program_Files/Microsoft_Office/*
���� �������� ������� = �������� ������� (MyComputer), �� XPath = C/Program_Files/Microsoft_Office/*
���� �������� ������� = ������� �C�, �� XPath = Program_Files/Microsoft_Office/*

�������� XML, � ������� �� �������� ���������, ��������� �� ����� ������ ����� ��������� ��������� � ����� � ��� �� ������. � ���� ������ �������� ������������ ���� ��������� ��� �������� ���� � ����������� ���� ����� ������������, � ����������� ����������� �������������� ������� ������, ��������, ��������� �������� ������ �� ��������� ���������. ��������� ������ ������������� �������������� ������� �������� �������� ��������� �� XML � ��������������� ��� XPath ������.

������ XPath � ��������� ���������:
Folder[@name=»MyComputer»]/Folder[@name=»C:»]/Folder[@name=»Program Files»]/Folder[@name=»Microsoft Office»]/*

���� ������� ����� �������������� ���� �� ������, ��� ��������� � ������ ��������� ������������ ������� � ���������. �������, ����� ������������� �� XPath ���������, � ����� ���������� � ����� ���������� ������������ ��� ����������.

��������� XPath


���� ������ ��� ���� XPath ������� �� �����, ����������� ������ �������. ���� ���������� ������������ ���������� ���������, ������� �������� ���� ��������� �����. ������ ����� �������� ����������, �� ����� ������ ������� ��� XPath �������:

��-������, �� ������ ���� ����������� �������� ������ �����. � �������� �������� ������ ���������� ��� ����� ����� (���������, ���������) ��� ����������� ����������� �������� �����, �������� text(), ������� ������������� ��� ��������� ����. ����������� node() ��� * — ����� ���� �� ������������ ����� �������� ����, � ���������� �� �����, ����� �� ��������� ������� �����������. �������� ������ ����� �������� ������������ ������ ������� ����.

��-������, �� ������ ���� ���� ����������� ���������� �������������� �������� ������ ��� �������� ����. ��������� ��������� ����������� � ���������� ������� � ����� ��������� ����������� �� �������� ��������� (��� � ������� ����), �����������, ��������� � ���������� ������ ��� ������ ������ ��������, �������� Folder[5]. ����������� �� �������� ��������� � ��������� ��������� ����� ������������ ����� ������� �������, ������������ ����������� ���������� (and, or) � ���������� �������������� ��������� (+, -, *, div, mod). ����� �������� ��������� ����� ����������� � ��������� �������� �� ���������� ��������. ��� ����� ���� �� �������� ������������.

� �������. ���� ��� ����, � ����� ������� ������� �������, �� ������������ ��������� ����� ����������� ���� � ��� ��� ����. ��� ���� ���� ���������� ������������ ����� ���������, ������������ ����������, �� ������� ����� ����������� �����. � ��������, ������������� ����, �� ������ ���� ����� ��������� � ����� ���������� ������ � �������� �� ��������� � �������� ���������. ���� ��������� � ������ ������� �������, �� ���� ���������������� ������� ����� ������� ��������� �������:

� ��� �����. ��������� ��� �� ��������� �� ������ ���� ������ �������� ������� � �������� ��� �������� ��������� ����� � ������������ �������� ������ child � ����� �����������: child.

��� ��� �������� ������ ������� XPath ������� ��� ������� �������:

�� ����� �������������� �������, ��� ���������� � ������ ���:

  • ancestor:: — ��� ������ �������� ���������;
  • ancestor-or-self:: — ��� ������ ���� ���� ���������;
  • descendant:: — ��� �������. ����������� ����������� — �.//�;
  • descendant-or-self:: — ��� ������� ���� ���� ���������;
  • child:: — ��� ������� �� ���� ������� ���� (�������� ����) ���������. �������� ��������� �� ���������.
  • parent:: — ������ �� ���� ������� ���� (������������ ����) ���������. ����������� ����������� — �..�;
  • following:: — ��������� �����, ������� � ������� ��������� (� ������� ������� ������ ���������) ������� ����� ����� ���������, �������� ��� �������� (descendant);
  • following-sibling:: — ��������� ����� ������ � ���������� ������, ������� � ������� ��������� ������� ����� ����� ���������;
  • preceding:: — ��������� �����, ������� � ������� ��������� (� ������� ������� ������ ���������) ������� ����� ������ ���������, �������� ��� ������� (ancestor);
  • preceding-sibling:: — ��������� ����� ������ � ���������� ������, ������� � ������� ��������� ������� ����� ������ ���������;
  • self:: — ��� ��������. ����������� ����������� — �.�;
  • attribute:: — ������� � ��������� ��������� �������� ��������. ����������� ����������� — �@�.

������� XPath ��������

��� ���� ����� �������������� ����������� ���� ������� ����������� ������ �������� ��������� ������� ��������� XPath ��������. ��������� ��� ����������, ����� ��������� XML �������� � �������� � ��� ��������� XPath ������. ���������� XML ��������� ������������ � ���� ������. ��������� ������� ����� ����������� � ���� ������ � ������������� � ���� ������. ����� �������� � ������ ����������� ���������������� � ������� ���������������� �������� � ������ � ��������. ���������� ���� �������� ������ �������� ������� ���������.

������� ���������������� ���������.
������� Microsoft .NET Framework 3.5 SP1.

�������� � ��������� XML, ������� ������������� � �������� ������� ��� ������������ XSD.

�������� ��������� ������� �������� � ���� ������. ������ ������ ������� ��� ��������� ����:

������ XPath ������� 1.

.// � ����������� ����������� ��� descendant. ������� ����� �������������� ����� ���� �������� ���������. ����� ������� ��������� ������ � ������� ��� ������������ �������� � �������. ��� ����� ���������� �������� ���� ��� ����, �� �������, ����������� ��� parent:: ����� ����������� ������� ��������.

�����, ����� ������� ������ ���������� ������������ ��������, �������� phone:

��������� � ��������� XPath �������� �������� ��������� �������:

������ XPath ������� 2.

����������� ����������� ����� �������� � �������������� ��������� ��������:

��� ����������� �������� ����� ��������� � �������� ������ �����, ��������� ������� �� ������� ������ �������� � ��������. ����������� ������� ����� ���������� �������������� �������� ������ �����, ����� ����������� �� �� ��������. ��������, ��� ��� ����� ��������� ������ �� ����� ���� ��������� (node() � ����� ����), ��������� ���������� ������� ������ ���� ����� �name�:

� ���������� ����� ������������ ����� ����� ����� ���������, �������� [name=’name’] . ��� ��������� name ����� ����� ���������� ���������� ���������������� �������� name ���������� ����, �� ����� �������������� ��� � ��������� ����� �������� ������, �.�. ������ .//node()[name=’name’] ������ ������������ ������� client, ��� �������� ������� name �������� ��������. �� ��� ������, ������������� ���� ��������� � ���������� ����� ������� ��������� ���������������� � ������������� �������. ����������, ���������������� �� � �������������� ������, � � ��������, ��� ��������������. ����� ��������� ������� ��� ��������� ������� ����� � ���, ��� �� ����� �� ���������, �� �������� ���������, � ����� ��������� ������ ������ ������������ �����.

���� � ���� �������� ��� ����, �� ����� ������� � ����� ������� ��������. ����� ������������ ������� ��������� �� XML ������, ��������������� �� ���� ������ ������������� ����� �������� SQL. ����� ����������� ������ report.xml � �������� ������ � ����������� ��������� ��������.

��� ������ �� ���������� ��������� ���� ���� ���������� �������, ������������� � ��� ���������� � ����� ��������� ��������� � ��������� � �������� XPath ��������. ��������� ������ ������� ��.�.�.� ���� �����������:

, � ��������� ��� ������ ����� ������� ������ � ������� ���� ����������� �� ������ ������ ����� 5 ���:

.//Record/Column[@Name=’S_EXPERIENCE’ and @Value>5]/preceding-sibling::Column[@Name=’S_NAME’]//attribute::Value

������ XPath ������� 3.

������ ����������� � ���������� �������. ��� .// (descendant::) ��������, ��� ����� �� ������ ���� ����������� �� ������ �� ��������� �� ��������� � ��������� ������, � �� ���� ������� ���������. �� ������ ���� �� ���� ��� �������� Record. �� ������ ���� ����� �������� �� ��������� � Record �������� �������� Column � ������������� �� �������� ���������: ������� ������ ��������� ������ � ����� �����������, � ���� �������� ����� ������ ���� ������ 5 ( @Name=’S_EXPERIENCE’ and @Value>5 ). ������� � ��������� Record ���������, ��������� �������� Column ���������� ����� � ��������� ������ — � ��������� Columns, � �� ���������� ���������. �� ������� ���� �� ���� ������� � ��.�.�.� ( @Name=’S_NAME’ ) ����� �������������� (preceding-sibling::) ������ ������� (������� ������� � ������ �������� �������). �� � �� ��������� ���� �� ��������� � ��������� ���� �������, ����� ������� ������ �������� �������� Value.

����������� �������� XPath ����� ������������ ����� �������, � ��� ����� � ��� ������ � �������. � �������������� ����� �� ���� ������� �������� ��������� ������ �������������� �������� �� ��.�.�.� �����������: ����� �� ������� ���������� �� �є:

.//Record/Column[@Name=’S_EXPERIENCE’ and @Value>5]/preceding-sibling::Column[@Name=’S_NAME’ and starts-with(@Value,’�’)]//attribute::Value

��� ����� � �������� ������� ���� ��������� �������, ����� �������� �������� Value ���������� �� �ђ ( starts-with(@Value,’�’) ).

� ������ ���������������� ������ �������� ������� ������� � �� ����������, ��� ����� ������������ ��� ��������� XPath �������� � �������������� ���������� ����� � ������� ������. ��������� ������ ����� ��������� ��������� �������:

������ XPath ������� 4.

�������� Column[3][@Value>5] ����������������, ��� 3-� �� ������� ������� Column �� ��������� �������� Value ������ 5. �������� /../Column[1][starts-with(@Value,’�’)] ���������� ������� �� ������� ����� � ����� 1-� ������� �� ��������� Value, ������������ �� �ђ. ��������� @Value � ����������� ������� attribute::Value. ��� ���������� ��������� ����� ������������ ���������� ��������� �������, �������� ������� last() , ������������ ����� ���������� ���� �������� ������.

����� �������� ��� ������� XPath ���������� ������ ����� �� ��������������: http://www.w3.org/TR/xpath/#corelib �������, ��� ��� ������ ���������� �� ���������� XPath ����������� ����� ��������� ����� ��� ����������. ������ ����� �� ����� ��� ������� � ����������� W3C.

������ ��������� ���������� XPath ������� �� C# ����� ���������� �����.

��������������!
����������� +����� ������� 28 2012 18:40:42 41766 ���������
������������ ����� � ����� ����������������

���� ��� ���������� ������������� �� C# � VB.NET.

���������� SQL �������� � ������ � ����� ������.

���������������� �� C#. ������� �����������.

���������� ���������� ���������.

������� ����������� Plug-in �����������.

���� �������� XML � ��� ���������� � ���������.

����� HTML, XHTML � CSS � ��������� ��������.

������ ���-�������: ������� ������� ����� �������.

����������� �� ���������������� �� PHP ��� ����������.


������� ��������������
������� �������� �������������� ����������� �����������.

����������� ����
������� ������� ������������ ������������ ����.

���������� XPath � PHP

������������ XPath ������ �� ��� ��� ������� ������ � XML

����� ������������ ����������
  • 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)

/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 ������ � ������������� � �������� ��� ������������ ������� �������� ����� ��������� 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 ��� ����������� ���� ����� � �������

��� ���������� ���� �� �������� 3 ����������� ����� ������ �������� ������� ���� NAME XML-������. �������� ��������, ��� ��������� /PRODUCTS/PRODUCT/NAME ������� ������ ���������� ���� � XML-������, � �� ������ ������ ��� ���������.

������� 3. ������������� SimpleXML ��� ����������� ���� �������� ��������� � �������

���� ��� ����� �������� ����������� ���� ��� ����� �� ������ ��������� ���������, �������� �������� �� ��������� 4 � 5.

����� ��������� �������� ���� �������� ���������� ������ �������� �� XML-���������. ��� ���������� ���� �� �������� 4 ����������� ����� ��������� �������� ������ ����.

������� 4. ������������� SimpleXML ��� ����������� �������� �������� ��� ����������� SKU

XPath-��������� /PRODUCTS/PRODUCT[SKU=’soft5678′]/NAME ���������� ��� ����, ������� ������������� ���������. � ���� ������ ������ ���� ������� ����� ����� SKU, ����������� � ��������. ���� ��� ����� ����� �������� ���� � ������������ �� ����� �������� � ������ XML, �� ������ ������������ ������� position() .

�� ������ ������������ �������� ��������� � XPath ��� ����������� ����������� ��������������� ���������� �����. � �������� 5 ������� ������ ������������� SimpleXML � XPath � �������� ����������.

������� 5. ������������� SimpleXML ��� ���������� ���������, ��������������� �������

��, ��������, ��������, ��� � ��������� 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-������, ������� ������������ ��� ������ � 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)

��� ����� ����� ( // ) ��������� XPath, ��� ���������� ������������ ������ ����������� ����, ������� � ��������� ����. ��������� ������ �� ������ ���� �� ������ ���������, ������������, ������, �������� �����, ���������� ���� ������� ��� ������������� ����������� ����. ��������� ���� for-each �������� � ��������� ���� //feed/entry , ������������ ������������� ���� ��� �������� � ������.

��������� XSLT-���� �� �������� 7, �� ������ �������� ��������������� PHP-��� ��� ���������� ��������������, ��� �������� � �������� 8.

������� 8. ������������� DOM ��� �������������� XLST

�������� ��������, ��� � �������� 8 ��� ��������� $xpath->query() , ��� �������� � �������� 6. ��� XPath-��������� ��������� � XSL-�����. ������ ����������� DOM, ����� ������������� ������� ������, � ����� ����� ��� ��������� ��������������!


����������

� ���� ������ �� ������������� � XPath � �������� ��� ������������� � ����� PHP5 ��� ������ � XML. ��� � ������ ������ ����������, ��������� � PHP, XML-���������� �������� ��� ��� ������������ ��������������� �� �������������� �����������, � �� �� �������������� ����������� ������� � ��������. XPath ����� ������ ���������� � ����������� �������� ����������� � ������� ������ � XML. � ����������� �� ����� ������������ ����� ������������� ������������ SimpleXML, DOM, XML ��� ���������� ��������������� ����, ����� ��� Zend Framework. � �������, ��� ��� �������� � W3C XPath � ����������� �����. ������� ����� ��� � ��������� ��� ����������� ��������� XML-���� ��� ����� ������ � ����� �������� ��� ��������� � �� ���������!

������� ��� ����������

������� ����

  • �������� ������: Using XPath with PHP (EN)
  • ������������ XPath 1.0 (EN): ������� ������� ��������� XPath.
  • ������������ XPath 2.0 (EN): ������������ � ����������� ����� ������ ������������ XPath 1.0.
  • XML ��� PHP �������������, ����� 1: 15-�������� �������� � ������ � XML �� PHP (EN) (����� ������, developerWorks, ���� 2007 �.). ���������� � ����������� XML � PHP5. ��� ������ ������ ����� �� ���� ������ ������� ���, ��� ������������ ������� ���������� XML � PHP, ��������� ������, �������������, �������� � ���������� �������� � ��������� XML-����� � ������� DOM � SimpleXML � ����� PHP.
  • XML ��� PHP �������������, ����� 2: ����������� ������ ������� XML (EN) (����� ������, developerWorks, ���� 2007 �.) �� ������ ����� ������ ����� �� ������� ������ ������� XML � PHP5 � ��������� �������� �������� ���������� ��� ������ ���������� ����� �������.
  • XML ��� PHP �������������, ����� 3: ����������� ������ ������, ��������������� � ������ XML (EN) (����� ������, developerWorks, ���� 2007 �.): � �������������� ������ ����� �� ������� � �������������� ������� ��� ������, ��������� � ������ XML � PHP5.
  • ���������� XML (EN): �������� ����������� �� ����� php.net � ������� ������ �� ������������� XML � PHP.
  • ����������� DOMXPath (EN): �������� ����������� �� ����� php.net � ������� ������ �� ������������� ������ DOMXPath.
  • PEAR — ��������� ���������� � ���������� PHP (EN). ������� ������ �� ���� �������������� � ������� ��������������� ��� �������� ������������ ����������� PHP.
  • Zend Framework (EN). �������� opensource-����� ��� ���������� �� PHP.
  • ������ ������ ����� ������ (EN) (������ ����, developerWorks, ���� 2011 �. — �� ���������� �������): ������� ������ � Linux�, �������� �������� �����, ��������� ������������ ����������� � ������ �����������.
  • ������������ IBM XML (EN). ����� �� ������� ��� ����� ����������������� ������������� IBM � ������� XML � ����������� ����������.

�����������

������� ��� ����������������� ��� ���� ����� ��������� ����������� ��� ����������� �� ���.

XML � XPath

XPath � ��� ���� ��� ������ ���������� ������ XML ���������.

��� ����� XPath?

  • XPath — ����������� ���� ��� ����������� ������ XML ���������
  • XPath ���������� ���������� ��������� ��� ��������� �� XML ����������
  • XPath �������� ���������� ����������� �������
  • XPath � ������� ������� � XSLT
  • XPath ����� ������������ � XQuery, XPointer � XLink

���������� ��������� XPath

XPath ���������� ���������� ��������� ��� ������ ����� ��� ������� ������� � XML ���������. ��� ���������� ��������� ������ �� �� ���������, ������� ����� ������� ��� ������ � ������������� ��������� ���������.

� ��������� ����� ��������� XPath ����� ������������ � JavaScript, Java, XML ������, PHP, Python, C � C++, � ����� �� ��������� ������ ������ ����������������.

XPath ������������ � XSLT

XPath �������� ������� ������������ ��������� ��������� XSLT. ��� ������ XPath ���������� ��������� ��������� XSLT.

������ XPath

��� ������������ XPath ����� ������������ ��������� XML ��������:

� ����������� ���� ������� ������������ ��������� ��������� XPath � ��������� �� ������:

��� ����� ��� xpath_eval

xpath_eval — Evaluates the XPath Location Path in the given string

Описание array xpath_eval ( XPathContext xpath_context, string xpath_expression [, domnode contextnode] )

Эта функция является ЭКСПЕ� ИМЕНТАЛЬНОЙ . Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

The optional contextnode can be specified for doing relative XPath queries.

Just an example of how to grab XML attributes with xpath — which took me a while to figure out. I’m filtering the returned object function node_content() which is a somewhat quick’n dirty solution, but I don’t always need XML’s child-parent relationships.

» ; print_r ( parse_XML ( $xml ));echo » » ;

function node_content ( $node , $attribute = «content» ) <
foreach( $node -> nodeset as $content ) <
$return [] = $content ->< $attribute >;
>
return $return ;
>

function parse_XML ( $xml ) <
//needs PHP’s xPath extension installed
$dom = domxml_open_mem ( $xml );
$calcX = & $dom -> xpath_new_context ();
$xml_parsed [ «merchandise» ]= node_content (
$calcX -> xpath_eval ( «//MERCHANDISE/SERVICE/NAME/text()» )
);
$xml_parsed [ «service» ]= node_content (
$calcX -> xpath_eval ( «//MERCHANDISE/SERVICE/attribute::TYPE» , $calcX )
, «value» );
return $xml_parsed ;
>
?>

The code above returns:

XML
Array
(
[merchandise] => Array
(
[0] => Ulysses

[1] => The Poisonwood Bible
[2] => Van
[3] => UFO
)

[service] => Array
(
[0] => books
[1] => books
[2] => cars
[3] => vehicle sans wheels
)

In order to use the default namespace you must understand
how namespace prefixes work. Prefixes are simply convenient mappies to the namespace URI.

For example, if you set the namespace:

and you have the following document fragment:

this is essentially equivalent to:

because the namespace URI is what matters, not the namespace prefix.

Unfortuantly, if you have a default namespace:

then all elements without a prefix belong to that namespace, and yet, it appears that PHP, and the underlying LIBXML2 don’t let you register a default namespace with

«xpath_register_ns(context, prefix, uri)»

i.e. by leaving the prefix = «». Therefore, to get around the problem, simply give the default prefix a simple name, such as «pre».

For example, if you have a default namespace declaration such as the following document:

= «1.0» encoding = «UTF-8» ?>

Some text

And you want to evaluate the xpath expression:

then you need to register the default namespace in PHP like this:

and then use the following xpath expression:

As you can see this is a lot prettier and more intuititive than using the local-name() function. In addition, it makes your code more portable, because you are guaranteed to always be working on nodes that belong to your explicitly stated namespace, uniquely identified by your URI.

Querying documents closed inside a namespace can be tricky

PHP Version: 4.3.1

I tried out how to get a part of a xml document with the xpath functions in domxml.
Try the following solution:

// get dom object
$xmldoc = domxml_open_mem ( $xml );

// init xpath
$xpath = xpath_new_context ( $xmldoc );
$xpresult = xpath_eval ( $xpath , «/root/info» );

// dump all nodes directly in plain text
foreach ( $xpresult -> nodeset as $node )
<
$newxml .= $node -> dump_node ( $node );
>
?>

If you wanna get a new dom object of the result just add

You can indeed use the result object of xpath_eval(). You just have to be careful to pass the result by reference! (note the ampersand’s position).

$objXP = xpath_new_context($objDom)
$objTest = &xpath_eval($objXP,»//lalala»);
$objTest->nodeset[0]->set_attribute(«test»,»test data»);
echo htlentities($objDom->dump_mem());

just be careful that is you pass around values from $objTest then they also need to be passed by reference.

If you want to apply an XPath-Expression to a particular node:

If you want to get the XPath for a particular node:

function getXPath($node) <
/* node id is held in a property named ‘1’, this is
illegal in php so we use a workaround */
$one = ‘1’;
$xpath = »;
while ($parent = $node->parent_node()) <
$siblings = $parent->child_nodes();
$index = 1;
foreach ($siblings as $sibling) <
if ($sibling->type != XML_ELEMENT_NODE || $sibling->tagname != $node->tagname) continue;
if ($sibling->$one == $node->$one) <
$xpath = ‘/’ . $node->tagname . ‘[‘ . $index . ‘]’ . $xpath;
break;
>
$index++;
>
$node = $parent;
>
return $xpath;
>

= xmldocfile ( ‘file.xml’ );
$xpath = $xml -> xpath_new_context ();

/**
* object access
*/
$ret = $xpath -> xpath_eval ( ‘//tag’ );

/**
* function access
*/
$ret2 = xpath_eval ( $xpath , ‘//tag’ );

print_r ( $ret );
print_r ( $ret2 );
?>

This function has come in handy for recursively viewing the results of xpath searches. It iterates through a node and converts it to a big associative array:

/**
* Recursive function to convert xml root node to big assoc array
*/
function xmlnode2array($node) <
if ($node->type==XML_ELEMENT_NODE) <
if ($attrArray = $node->attributes()) <
// parse attributes //
foreach($attrArray AS $attr) <
$out[‘ATTRIBUTE’][$attr->name] = $attr->value;
>
>
if ($childArray = $node->children()) <
// add child nodes //
foreach($childArray AS $child) <
if ($child->type==XML_ELEMENT_NODE) <
$out[$child->tagname][] = xmlnode2array($child);
> else <
if ($content = xmlnode2array($child))
$out[‘CONTENT’] = $content;
>
>
>

> else <
// this is a CONTENT NODE //
$out = trim($node->content);
if (!$out) return false;
>
return $out;
>

I hope this little example helps someone out. If the XML data doesn’t come thru in the post feel free to contact me via email.

$dom = xmldoc ( $s );
$ctx = xpath_new_context ( $dom );

$query_xo = xpath_eval ( $ctx , «count(/query/resourceClass)» );
$num_rc = $query_xo -> value ;
echo( «
There are $num_rc classes in this list» );

for( $x = 1 ; $x $num_rc ; $x ++) <
$query_xo = xpath_eval ( $ctx , «/query/resourceClass [ position()=$x ] » );
$query_ns = $query_xo -> nodeset ;
$resourceClass_dn = $query_ns [ 0 ];

«);
// print_r( $rc_dn );
echo( «
[id::» . $resourceClass_dn -> get_attribute ( ‘id’ ). «][displayName::» . $resourceClass_dn -> get_attribute ( ‘displayName’ ). «]» );

$ctx = xpath_new_context($doc);
$xpath_nodes = xpath_eval($ctx, «//some_element»);

$xpath_nodes->nodeset[i]->set_content($string) allows you to set the node content. Try it and then do a $doc->dumpmem, you’ll see the nodes in the original document are indeed updated properly.

I’ve used this feature lots. It does work.

This is a very (very) minor point, but there is a comma missing in the function definition for xpath_eval. This being my first experience with xpath, I thought «object xpath context» was refering to a single parameter produced by a previous call to xpath_new_context(). Then I couldn’t see where you would add the query (which is actually the context parameter)

So the proper definition should be
array xpath_eval (object xpath, context)

Just wanted to add that PHP 4.0.4 has improved DOM support including Xpath and
Xpointer support:

$xml=’SOME XML . ‘;
$doc=xmldoc($xml);
$ctx=xpath_new_context($doc);
$foo=xpath_eval($ctx,»//title»);
print_r($foo);

It returns an object that contains a property called Nodeset with an array of DomNodes with the result of the Xpath expression. print_r($foo) to see the full structure.

4.0.4 has also added Xpointer support, so with Xpath and Xpointer support we can really do a lot of things from PHP to XML files.

Илон Маск рекомендует:  PVariant - Тип Delphi
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL
Внимание