Salut,
für eine neue Version meines CMS möchte ich die Inhalte der DB auf ein XML-Format umstellen. Das Parsen klappt auch soweit, nur sobald ein Kaufmannsund irgendwo im zu parsenden XML auftaucht, funktioniert's nicht mehr. Zur Anschauung habe ich hier auch ein Beispiel:
Code
<?PHP
class ContentPlugInPLAYLIST_parser
{
var $parser;
var $output = "";
var $counter = 1;
function startElement($parser, $element_name, $attribs)
{
if(strtolower($element_name) == "album")
{
$this->output .= "<tr><td>".$this->counter."</td><td>".$attribs[TITLE].
"</td><td>".$attribs[ARTIST]."</td></tr>";
$counter++;
}
}
function endElement($parser, $element_name)
{
}
function cdata($parser, $element_inhalt)
{
}
function GoParse($content)
{
$xmlFile = split("\n", "<root>".$content."</root>");
$this->parser = xml_parser_create();
$this->output = '<table><tr><th></th><th>Title</th><th>Artist</th></tr>';
xml_set_object($this->parser, $this);
xml_set_element_handler($this->parser, "startElement", "endElement");
xml_set_character_data_handler($this->parser, "cdata");
foreach($xmlFile as $element)
{
xml_parse($this->parser, $element);
}
xml_parser_free($this->parser);
return $this->output.'</table>';
}
}
$myclass = new ContentPlugInPLAYLIST_parser();
echo $myclass->GoParse(
"<album title=\"Now & Then\""."artist=\"Me\"></album>".
"<album title=\"Test\" artist=\"Test\"></album>");
?>
Alles anzeigen
Erst wenn das Und-Zeichen in der drittletzten Zeile entfernt wird, funktioniert das Script. Gibt es eine Möglichkeit, den Parser doch davon zu überzeugen, das Zeichen zu akzeptieren?
Danke im Voraus,
Stefan