I'm having trouble with parsing an XML File. I'm trying to get the data from the name tag ONLY. But it is returning all the tags?
<?PHP
require_once 'XML/Parser.php';
class myParser extends XML_Parser
{
function myParser()
{
parent::XML_Parser();
}
var $currentTag = null;
function startHandler($xp, $name, $attribs)
{
$this->currentTag = $name;
}
function endHandler($xp, $name)
{
$this->currentTag= null;
}
var $i = 0;
function cdataHandler($parser, $data)
{
$data = trim($data);
if (empty($data))
{
return true;
}
if($this->currentTag = 'name')
{
echo $data."<BR>";
}
}
}
$p = &new myParser();
$result = $p->setInputFile('bounds2.xml');
$success = $p->parse();
if (PEAR::isError($success)) {
die('Parsing failed:' . $success->getMessage());
}
?>
Here is the XML file:
<?xml version="1.0" encoding="iso-8859-1"?>
<GPX>
<rte>
<number>0</number>
<name>HORNBROOK ELEMENTARY</name>
<cmt>6.73119190660501E-02</cmt>
</rte>
<rte>
<number>1</number>
<name>SEIAD ELEMENTARY</name>
<cmt>5.70564466497725E-02</cmt>
</rte>
<rte>
<number>2</number>
<name>BOGUS ELEMENTARY</name>
<cmt>2.43890761363215E-02</cmt>
</rte>
<rte>
<number>3</number>
<name>KLAMATH RIVER UNION ELEMENTARY</name>
<cmt>8.31780402967119E-02</cmt>
</rte>
</GPX>
This is what the output looks like:
HORNBROOK ELEMENTARY
6.73119190660501E-02
1
SEIAD ELEMENTARY
5.70564466497725E-02
2
BOGUS ELEMENTARY
2.43890761363215E-02
3
KLAMATH RIVER UNION ELEMENTARY
8.31780402967119E-02