<?php
/*
* extract_valid_xml_data.php
*
* @(#) $Id: extract_valid_xml_data.php,v 1.2 2012/09/04 10:08:03 mlemos Exp $
*
*/
?><html>
<head>
<title>Validate and extract data from XML document</title>
</head>
<body>
<h1 align="center">Validate and extract data from XML document</h1>
<hr>
<?php
require('xml_parser.php');
$file_name = 'example.xml';
$error = XMLParseFile($parser, $file_name, 1, $file_name.'.cache');
if(strlen($error) == 0)
{
/*
* The types array defines the types and structure of the document
* to be validated before extracting its data values.
*/
$content_types = array(
'CONTENTS'=>array(
'type'=>'hash',
'types'=>array(
'OBJECT'=>array(
'type'=>'hash',
/* allow tag to appear an unlimited number of times */
'maximum'=>'*',
'types'=>array(
'NAME'=>array(
/* The default maximum and minimum times is 1 for required tags */
'type'=>'text',
),
'CLASS'=>array(
'type'=>'text',
),
'ATTRIBUTES'=>array(
'type'=>'path',
/* make it optional by not requiring a minimum number of times to appear */
'minimum'=>0,
),
)
)
)
)
);
$root_path = '';
$root_element = 'CONTENTS';
$hash = 1;
$error = $parser->ExtractElementData($root_path, $root_element, $content_types, $hash, $contents);
}
if(strlen($error))
echo '<h2 align="center">Parser error: ', $error, '</h2>';
else
{
echo '<h2 align="center">Extracted data structure</h2>';
echo '<p>This example dumps the structure and values of the XML file.</p>';
echo '<pre>';
/*
* The resulting associative array has the tag names and values
* that were found and validated in the XML document
*/
var_dump($contents);
echo '</pre>';
}
?></body>
</html>
|