# PHP and MySQL Programming/XML and PHP
## Introduction

XML (eXtensible Markup Language) is used in mainstream development. It might have started off as an attempt at a web standard, but is now used even in more traditional applications as a document standard. For example, the Open Document Format employed by Sun in their StarOffice and OpenOffice suites is based on XML.
Because of its wide-spread use in the IT industry, it is fitting that we as PHP developers know how to make use of XML files in our PHP applications.

## XML Structure

Since XML documents are extensible, there are no limits to the tags that you can create to define data with. Here is an example of a simple XML document:
The reason that it looks so simple, is because it is so simple! Just as in HTML, elements are enclosed by angled brackets: "<" and ">", where the start element differs from the end element by the exclusion of a forward slash: "/".

## Creating an XML Parser in PHP
### Defining the XML Parser

In PHP, you define an XML Parser by using the xml_parser_create function as shown below.
You can think of the $parser variable in terms of a parsing engine for the XML document. Note that the ENCODING can be either:
1. ISO-8859-1 (default)
2. US-ASCII
3. UTF-8

### Defining the Element Handlers

Element handlers are defined by means of the xml_set_element_handler function as follows:
The three arguments accepted by the xml_set_element_handler function are:
1. XML_PARSER - The variable that you created when you called the xml_parser_create function.
2. START_FUNCTION - The name of the function to call when the parser encounters a start element.
3. END_FUNCTION - The name of the function to call when the parser encounters an end element.
e.g.:

### Defining Character Handlers

Character handlers are created by means of the set_character_handler function as follows:
The two arguments accepted by the set_character_handler function are:
1. XML_PARSER - The variable that you created when you called the xml_parser_create function.
2. CHARACTER_FUNCTION - The name of the function to call when the parser encounters character data.

### Starting the Parser

To finally start the parser, we call the xml_parse function as follows:
The two arguments accepted by the xml_parse function are:
1. The variable that you created when you called the xml_parser_create function.
2. The XML that is to be parsed.
e.g.:

### Cleaning Up

After parsing an XML document, it is considered good practice to free up the memory that is holding the parser. This is done by calling the xml_parser_free function as follows:

### Example
## Parsing XML Documents

We have seen the steps needed to successfully parse a XML document with PHP. Lets take a moment to reflect on how these steps are interconnected.
When a XML parser is initialized, php will go through the XML file. When a starting tag is found, a predefined function created by you, the programmer, is called. The same thing happens when php encounters the text between tags, and the end tags.
Here is a complete example of parsing XML documents. This example is a RSS reader which can be used to display News Articles from any RSS feed which conforms to RSS 1.0 standards.