sorry das ich schon wieder posten muss.
mir ist die art und weise wie expat arbeitet noch nicht ganz klar
es gibt drei funktionen startElement, endElement und cdata
bei den ersten beiden kann man via if oder switch (geht das??) unterscheiden welcher tag es ist und bestimmte aktionen ausführen richtig?
und wann kommt die funktion für text dran?
kommt die erst danach dran wenn start element einen tag gefunden hat und springt dann wieder zurück zum start element oder so?
hab nämlich mit dem beispiel da unten mal was zusammen gebastelt was natürlich nicht funktioniert
ich hab mir dabei gedacht wenn ein tag item oder subitem gefunden wird soll ein neues objekt instanziert werden und beim schließenden tag einem array zugefügt werden.
und wenn ein anderer tag endeckt wird (wo dann ein text drin steht) soll dieser dann dem entsprechenden attribut meines objektes zugewiesen werden....
mir ist die art und weise wie expat arbeitet noch nicht ganz klar
es gibt drei funktionen startElement, endElement und cdata
bei den ersten beiden kann man via if oder switch (geht das??) unterscheiden welcher tag es ist und bestimmte aktionen ausführen richtig?
und wann kommt die funktion für text dran?
kommt die erst danach dran wenn start element einen tag gefunden hat und springt dann wieder zurück zum start element oder so?
hab nämlich mit dem beispiel da unten mal was zusammen gebastelt was natürlich nicht funktioniert
Code:
<?xml version="1.0" encoding="UTF-8" ?> <RootElement> <Item> <Element1>Text</Element1> <Element2>Text</Element2> <Element3>Text</Element3> <Element4>Text</Element4> <SubItems> <SubItem> <Element1>Text</Element1> <Element2>Text</Element2> <Element5>Text</Element5> </SubItem> <SubItem> <Element1>Text</Element1> <Element2>Text</Element2> <Element5>Text</Element5> </SubItem> </SubItems> </Item> <Item> <Element1>Text</Element1> <Element2>Text</Element2> <Element3>Text</Element3> <Element4>Text</Element4> </Item> </RootElement>
PHP-Code:
function startElement($parser, $element_name, $element_attribute)
{
//global $ausgabe;
global $SingleItem;
global $SingleSubItem;
global $strInhalt;
//Überprüfung des Elementnames
switch(strtolower($element_name))
{
case 'item': $SingleItem = new Item();
break;
case 'bugnote': $SingleSubItem = new SubItem();
break;
case 'setElement1': $SingleItem->setElement1($strInhalt);
break;
case 'setElement2': $SingleItem->setElement2($strInhalt);
break;
case 'setElement3': $SingleItem->setElement3($strInhalt);
break;
case 'setElement4': $SingleItem->setElement4($strInhalt);
break;
}
}
function endElement($parser, $element_name)
{
global $SingleItem;
global $SingleSubItem;
global $aSubItems;
global $aItems;
switch(strtolower($element_name))
{
case 'item': $aItems[] = $SingleItem;
break;
case 'subitem': $aSubItems[] = $SingleSubItem;
break;
}
}
function cdata($parser, $element_inhalt)
{
global $strInhalt;
$strInhalt = $element_inhalt;
}
und wenn ein anderer tag endeckt wird (wo dann ein text drin steht) soll dieser dann dem entsprechenden attribut meines objektes zugewiesen werden....