I think it's important to mention that my problem is not with XML, but with my use of arrays. I have tested the variable content that comes back with XML and the data is coming through. My problem is I am not doing something right to make the data into an array... > heey, > > i'm currently facing the same problem as you. > i was thinking of using either xml_parse_into_struct or using > a class i found phpxml.class at http://www.phpxml.org > let me know how you did it, i'm very intrested > > Serge "Zeddicus Zu'l Zorandre" Vleugels > > -- freedom is the wizard's only choice -- > > > On 23 Apr 2001 09:18:25 -0400, [EMAIL PROTECTED] wrote: > > Hello, > > > > I'm new to using XML with PHP, but I think I've got it figured out for > > the most part. I have created a class that reads in an XML file and > > returns the data it finds to an array, but I'm running into a problem > > because the array keeps coming back empty. Would you mind taking a > > moment to see where I'm going wrong? > > > > > > file.xml > > ======================================================================= > > > > <ARTICLE> > > <URL>/article1.html</URL> > > <TITLE>Article 1</TITLE> > > </ARTICLE> > > > > <ATRICLE> > > <URL>/article2.html</URL> > > <TITLE>Article 2</TITLE> > > </ATRICLE> > > > > > > > > xml.class.php > > ======================================================================= > > > > > > <? > > > > > > class eXML > > { > > > > > > var $Parser; > > > > var $theArray; > > var $theArrayTopElement; > > var $theArrayElements; > > var $theArrayPointer; > > var $theArrayGetElement; > > > > > > function eXML($_PARENT_, $_CHILDREN_) > > { > > > > $this->Parser = xml_parser_create("ISO-8859- 1"); > > xml_set_object($this->Parser, &$this); > > xml_set_element_handler($this- > > >Parser, "Tag_Open", "Tag_Close"); > > xml_set_character_data_handler($this- > > >Parser, "CData"); > > > > $this->theArray = array(); > > $this->theArrayPointer = 0; > > $this->theArrayGetElement = NULL; > > $this->theArrayTopElement = $_PARENT_; > > $this->theArrayElements = $_CHILDREN_; > > > > } > > > > > > function Free() > > { > > > > xml_parser_free($this->Parser); > > > > } > > > > > > function Parse_Array($_FILE_) > > { > > > > $_FP_ = fopen($_FILE_, "r") or die("Cannot Open > > XML Stream"); > > > > while ($_DATA_ = fread($_FP_, 4096)) > > { > > > > if (!xml_parse($this->Parser, $_DATA_, > > feof($_FP_))) > > { > > > > return(FALSE); > > > > } > > > > } > > > > fclose($_FP_); > > var_dump($this->theArray); > > return($this->theArray); > > > > } > > > > > > function Tag_Open($_PARSER_, $_TAG_, $_ATTR_) > > { > > > > if ($_TAG_ == $this->theArrayTopElement) > > { > > > > $this->theArray[$this- >theArrayPointer] > > = "SOMETEXT"; > > // NOT SURE IF THIS IS NECESSARY > > > > } > > > > $_ELEMENTS_ = explode("::", $this- > > >theArrayElements); > > for ($I = 0; $I < count($_ELEMENTS_); $I++) > > { > > > > if ($_TAG_ == $_ELEMENTS_[$I]) > > { > > > > $this->theArrayGetElement = > > $_ELEMENTS_[$I]; > > > > } > > > > } > > > > > > } > > > > > > function Tag_Close($_PARSER_, $_TAG_) > > { > > > > if ($_TAG_ == $this->theArrayTopElement) > > { > > > > $this->theArrayPointer++; > > > > } > > > > $this->theArrayGetElement = NULL; > > > > } > > > > > > function CData($_PARSER_, $_CDATA_) > > { > > > > if ($this->theArrayGetElement != NULL) > > { > > > > array_push($this->theArray, $_CDATA_); > > $this->theArray[$this- >theArrayPointer] > > [$this->theArrayGetElement] = $_CDATA_; > > > > } > > > > } > > > > } > > > > > > ?> > > > > > > > > xml.test.php > > ======================================================================= > > > > <? > > > > > > $XML = new eXML("ARTICLE", "URL::TITLE"); > > $ARTICLES = $XML->Parse_Array("file.xml"); > > print_r($ARTICLES); > > > > > > ?> > > > > > > What I expect to happen is this: > > > > $ARTICLES[0]["URL"] == "/article1.html"; > > $ARTICLES[0]["TITLE"] == "Article 1"; > > $ARTICLES[1]["URL"] == "/article2.html"; > > $ARTICLES[1]["TITLE"] == "Article 2"; > > > > But the array is empty. > > > > Thankz in advance for your help. > > Robert > > > > > > > > -- > > > > [ Swift eNetwork ] Matrix > > http://matrix.swifte.net/ > > > > -- > > > > -- > > PHP General Mailing List (http://www.php.net/) > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > To contact the list administrators, e-mail: php-list- [EMAIL PROTECTED] > > > > > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > To contact the list administrators, e-mail: php-list- [EMAIL PROTECTED] > > > -- [ Swift eNetwork ] Matrix http://matrix.swifte.net/ -- -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]