This presentation demonstrates how QueryPath can be used within Drupal to integrate web services and create rich mash-ups.
The "official" DrupalCon Paris video of this presentation can be found here: http://technosophos.com/content/querypath-mashups-and-web-services-video
7. The Task
Find all
<a></a>
tags who have
the ancestor
<div></div>
8. The DOM API
• At least seventeen
classes, each with dozens
of methods.
• Complex data structure.
• Checkered history in
PHP.
• VERY powerful.
9. SimpleXML
• One class, about a dozen
functions and methods.
• Turns XML into basic
objects.
• Makes easy stuff easy,
and makes everything
else insanely hard.
Same size as DOM
Example
10. SAX / Expat
Same size,
fewer features
• Event based.
• Write your own parser
handler.
• One per XML format.
• Only reliable “legacy”
library.
11. QueryPath
• Compact library.
• Functions are short and
mnemonic.
[This space intentionally left blank ]
• The power of DOM, but
simpler than SimpleXML
• (Shhh... don’t tell, but it’s
built on the DOM.)
12. Use it to...
• Import HTML files • Create HTML on the fly
• Read XML files • Retrieve database
content and insert it
• Work with remote web into XML or HTML
services
• Examine RDFa data
• Manipulate SVG images inside HTML or XHTML
• Retrieve RSS and Atom • Run SPARQL queries
feed data and retrieve SemWeb
content
14. Importing Content
• 6,000+ existing
documents
• Fragments of HTML 2,
3, and 4
• Much of it non-standard
• Imported into Drupal
using BatchAPI, Tidy, and
QueryPath
15. Querying Semantic
Information
• Use the OpenAmplify
web service
• Submit node content
• Use results to enrich
page
• Build a supermashup
(seven web services)
http://www.youtube.com/watch?v=GBBKPIva1tM
16. Gateway to Web
Services
• 100’s of Gigabytes of
data
• Stored in an external
Digital Asset
Management tool
• XML gateway
• QueryPath integrates
Drupal with the DAM
17. Semantic Network
• DBPedia is semantic
equivalent of Wikipedia
• Query with SPARQL
• Return semantically
oriented XML content
• QueryPath can query
and make use of the
results
18. Twitter Mash-up
• Retrieve latest posts
from Twitter
• Submit them to
OpenAmplify for analysis
• Provide “ratings” and
sentiment information
• Not in Drupal
http://tweetypants.com
19. Frameweld Framework
• Frameweld uses
QueryPath as part of
their proprietary
framework
• Clean separation of
presentation and other
logic
• QueryPath translates
data objects into HTML Frameweld contributes
back to QueryPath
25. The Features
• Query a document • Access remote data
• With XPath • Extensions for...
• CSS selectors • XSLT, XSD, PI
• Move around inside the • SQL database access
document
• Templates
• Modify the document
• Access local files
26. Traversing an
HTML or XML
Document
There are over a dozen
functions for traversing a
document.
These are similar to jQuery’s
traversal functions.
27. Manipulating a
Document
• Get and set text,
elements,
attributes, etc.
• Move, clone,
delete.
• Build arbitrary
XML or HTML.
28. In Drupal...
• Install the
QueryPath
module
• Begin using
QueryPath in
your modules
29. Outside of Drupal
• Go to
QueryPath.org
• Download
QueryPath
• Use it in your
applications
30. Learn More
• IBM DeveloperWorks published an
introduction to QueryPath:
http://is.gd/2wHPA
• The full API docs are available at
http://api.querypath.org
• Learn more about Drupal modules at
http://dupal.org/project/querypath