cg0119 web database systems using xpath to navigate & filter xml (via simplexml)

12
CG0119 Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML)

Upload: garan

Post on 06-Jan-2016

24 views

Category:

Documents


3 download

DESCRIPTION

CG0119 Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML) ‏. XPath. What is it? w3c standard for… Navigating through an XML document Filtering & finding information Includes… Expressions for navigating to parts of an XML document - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CG0119  Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML)

CG0119 Web Database Systems

Using XPath to Navigate & Filter XML (via SimpleXML)

Page 2: CG0119  Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML)

XPath

• What is it?– w3c standard for…

• Navigating through an XML document• Filtering & finding information

– Includes…• Expressions for navigating to parts of an XML

document• The standard includes functions (e.g. for string &

date manipulation)• Used in XSLT – we used some XPath path

expressions last week…!!!

Page 3: CG0119  Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML)

XPath Expressions• What are they?

– Path expressions are a means of selecting nodes (or sets of nodes) from an XML document

– They consist of…• A path to the nodes/node sets• A predicate (optional)

• Syntax– Without a predicate:

• Nodenames, separated by a forward slash (/)

– Predicates:• Predicates are placed inside [ ]

Page 4: CG0119  Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML)

Example xml document

<?xml version="1.0"?><students> <student> <studentCode>P283746</studentCode> <forename>Anabela</forename> <surname>Domingues</surname> <studyTypeID>P</studyTypeID> <startYear>2004</startYear> </student> <student> <studentCode>M928493</studentCode> <forename>Ann</forename> <surname>Devon</surname> <studyTypeID>U</studyTypeID> <startYear>2002</startYear> </student> ...</students>

student.xml

Root node

Child of root node

Children of student

Page 5: CG0119  Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML)

Examples: XPath Expressions• What would be the path expression to

navigate to the startYear node?

• What would be the path expression to select the startYear node where the startYear = 2002?

‘/students/student/startYear’

‘/students/student/startYear[. = “2002”]’

--- OR ---

‘/students/student[startYear = “2002”]/startYear’

www.w3schools.com/xpath/xpath_intro.asphas more details on & examples of path expressions

Page 6: CG0119  Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML)

Example: Multiple Predicates

• What would be the path expression to select student nodes where the startYear = 2002 and the studyTypeIdD= U?

'/students/student[startYear=2003][studyTypeID = "U"]'

www.w3schools.com/xpath/xpath_intro.asphas more details on & examples of path expressions

Page 7: CG0119  Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML)

XPath & simpleXML Example

The aim of the example used in the following slides is to list data in a XHTML table for all students who started at University in 2002

e.g.

Fiona MurrayM828827

……

Ann DevonM928493

NameStudent Code

Page 8: CG0119  Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML)

XPath & simpleXML – PHP Code

Steps involved in this example:1. Create an instance of a simpleXML class by loading the

XML file

2. Construct the query expression

3. Call the XPath method to execute the query

4. Loop through the result set

Page 9: CG0119  Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML)

Steps 1 to 3: simpleXML & XPath Objects

// Create a new simplexml instance loading xml file$studentsXML = simplexml_load_file('student.xml');

// Construct an XPath expression,// including a predicate in this instance.$qry = '/students/student[startYear = "2002"] ';

// call the simplexml xpath method$students = $studentsXML->xpath($qry);

Page 10: CG0119  Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML)

Step 4: Loop Through Query Result Set

// iterate through the students returned by the xpath queryforeach ($students as $student) {

}

echo " {$student->studentCode} \n"; echo " {$student->forename} "; echo "{$student->surname} \n";

echo "<tr>\n"; echo "<td>{$student->studentCode}</td>\n"; echo "<td>{$student->forename} "; echo "{$student->surname}</td>\n"; echo "</tr>\n";

echo "<table border=\"1\">\n";echo "<tr><td>Student Code</td><td>Name</td></tr>\n";

echo "</table>\n";

Page 11: CG0119  Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML)

Summary

• XPath is a w3c standard for

– Navigating through an XML document

– Filtering & finding information

• Path expressions navigate to a particular node or node-set and they may include predicates

Page 12: CG0119  Web Database Systems Using XPath to Navigate & Filter XML (via SimpleXML)

Recommended Readinghttp://www.zvon.org/xxl/XPathTutorial/General/examples.html

- Xpath tutorial

http://www.rpbourret.com/xml/XPathIn5.htm- XPath in 5 paragraphs!

http://www.w3schools.com/xpath/- w3schools XPath tutorial & reference*