Integrating Custom XML Sources
In this section, we’ll depart from
simple examples designed to help understand the technology and
provide a real-world example of a custom XSQL action handler that
does something really useful. In Chapter 6 we built
a class called JTidyConverter, which leveraged the
freely available JTidy JavaBean to convert HTML
into a well-formed XML document. Then we wrote some examples
illustrating how basic XPath expressions in an XSLT stylesheet could
easily extract interesting information like stock quotes from HTML
returned by a live request against the Yahoo! Quotes web site. Here
we will show a parallel example that illustrates how such useful,
dynamic XML information can be adapted into the XSQL Pages framework.
Example 16.5 shows the code for this
LiveQuotes action handler.
As with our more straightforward examples earlier in this chapter,
the LiveQuotes handler uses
getAttributeAllowingParam to get the list of
ticker symbols from the symbols attribute on the
action element, then employs the JTidyConverter
class to retrieve the dynamic HTML page delivered from the Yahoo!
Quotes server and return it as an in-memory XML document. Rather than
writing code to perform the XSLT transformation ourselves, we take
advantage of the XSQL page processor’s own
XSQLStylesheetProcessor, which automatically
loads, caches, and pools the
YahooQuotes-to-QuoteStream.xsl stylesheet. Note
that we have to call getPageRequest( ).translateURL( ) so that the relative URL
YahooQuotes-to-QuoteStream.xsl ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access