Choosing input -- Explanation of different types of input data
Selecting the input for XML_Parser
XML_Parser is able to parse from several inputs:
filesystem or anything that can be accessed via stream
strings
resources
You will have to set the input using setInputFile(),
setInputString() or setInput()
and then call parse() to start the XML processing.
Parsing from a file
To parse from a file or URL, you'll have to set the name or URI using
XML_Parser::setInputFile(). You may not only use
files located on the filesystem, but any location that can be opened using
fopen(). You may combine this functionality with
the stream functions
or PEAR's Streams packages
to parse documents from shared memory, databases or anything else.
You may also use any of PHP's built-in
wrappers to open HTTP or FTP locations as well as STDIN.
Parsing from a string
To parse an XML string, pass the string to XML_Parser (or your
subclass of XML_Parser) using XML_Parser::setInputString().
A big advantage of SAX-based parsing is that the parser does not have to read the
whole XML document to process it. If you are parsing very large documents, you should
aboid setInputString() and use setInput()
or setInputFile() instead.
Parsing from any resource
There's a third, but seldomly used way to specify XML_Parser's input. XML_Parser
allows you to pass a PHP resource, like a file pointer that has been returned by
fopen(). This can be useful, if you are generating the document
on-the-fly and already opened it before. Instead of closing the file and passing its
name to XML_Parser, you may simply use XML_Parser::setInput() to
pass the resource. Make sure that the file pointer is at the correct location in your
file using fseek().