Choosing input

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().

Explanation of possible parsing modes (Previous) XML_Query2XML (Next)
Last updated: Thu, 17 Apr 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.