Reading Non-XML Documents with XmlReader
To read any sort of document using a
non-XML format as though it were XML, you can extend
XmlReader by writing a custom
XmlReader subclass. Among the advantages of
writing your own XmlReader subclass is that you
can use your custom XmlReader wherever you would
use any of the built-in XmlReaders. For example,
even if the underlying data isn’t formatted using
standard XML syntax, you can pass any instance of a custom
XmlReader to XmlDocument.Load(
) to load the XML document into a DOM (more on
XmlDocument in Chapter 5). You
could load a DOM tree from the data, use XPath to query the data,
even transform the data with XSLT, all this even though the original
data does not look anything like XML.
As long as an alternative syntax provides a hierarchical structure
similar to XML, you can create an XmlReader for it
that presents its content in a way that looks like XML. In this
chapter you’ll learn how to write a custom
XmlReader implementation which will enable you to
read data formatted in PYX, a line-oriented XML format, as if it were
XML.