Hilfe mit XML und PHP

robertoel

Grünschnabel
Ich will von der Seti-Seite ein paar Daten für eine Statisik abrufen aber irgendwie gibt er mir immer alles aus und die Sachen die ich will stehen halt oben aber ich will ja nur ein paar Daten und nicht den Rest auch noch! Kann mir vielleicht jemand sagen wie ich nur die gewollten Daten auslesen kann. Den Code hab ich dazu aber was fehlt da noch?

<?php

function startElement($parser, $element_name, $element_attribute) {
global $ausgabe;
//Umwandeln in Kleinbuchstaben
$element_name = strtolower($element_name);
//Überprüfung des Elementnames
if ($element_name=="name") {
$ausgabe .= "<h3>Name:</h3><p>";
}
if ($element_name=="numresults"){
$ausgabe .= "<h3>WUs:</h3><p>";
}
if ($element_name=="group"){
$ausgabe .= "<h3>Team:</h3><p>";
}
}
function endElement($parser, $element_name) {
global $ausgabe;
// in Kleinbuchstaben umwandeln
$element_name = strtolower($element_name);
// Überprüfung des Names eines Elementes
if ($element_name=="name") {
$ausgabe .= "</p>";
}
if ($element_name=="numresults"){
$ausgabe .= "</p>";
}
if ($element_name=="group"){
$ausgabe .= "</p>";
}
}
function cdata($parser, $element_inhalt) {
global $ausgabe;
// Der normale Text wird an $ausgabe angehängt
$ausgabe .= $element_inhalt;
}
$xmlFile = file("http://setiathome.ssl.berkeley.edu/fcgi-bin/fcgi?cmd=user_xml&email=oelei@web.de");
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "cdata");

foreach($xmlFile as $elem)
{
xml_parse($parser, $elem);
}
xml_parser_free($parser);

echo $ausgabe;
?>
 

melmager

Erfahrenes Mitglied
wie kommst du auf foreach und file?

PHP:
$xmlFile = "http://setiathome.ssl.berkeley.edu/fcgi-bin/fcgi?cmd=user_xml&email=oelei@web.de";
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "cdata");
$fp = fopen($xmlfile,"r");

while( $elem = fread($fp,1024)) {
 if (!xml_parse($parser, $elem,feof($fp))) {
  die "xml Fehler"
 }
}
fclose($fp);
xml_parser_free($parser);
 

robertoel

Grünschnabel
Bei mir bringt er einen Fehler in der Zeile 46!

Parse error: parse error in c:\apache\htdocs\hallo.php on line 46

Hier nochmal der Text mit dem eingebaut was du mir gesagt hast!
PHP:
<?php

function startElement($parser, $element_name, $element_attribute) {
global $ausgabe;
//Umwandeln in Kleinbuchstaben
$element_name = strtolower($element_name);
//Überprüfung des Elementnames
if ($element_name=="name") {
$ausgabe .= "<h3>Name:</h3><p>";
}
if ($element_name=="numresults"){
$ausgabe .= "<h3>WUs:</h3><p>";
}
if ($element_name=="group"){
$ausgabe .= "<h3>Team:</h3><p>";
}
}
function endElement($parser, $element_name) {
global $ausgabe;
// in Kleinbuchstaben umwandeln
$element_name = strtolower($element_name);
// Überprüfung des Names eines Elementes
if ($element_name=="name") {
$ausgabe .= "</p>";
}
if ($element_name=="numresults"){
$ausgabe .= "</p>";
}
if ($element_name=="group"){
$ausgabe .= "</p>";
}
}
function cdata($parser, $element_inhalt) {
global $ausgabe;
// Der normale Text wird an $ausgabe angehängt
$ausgabe .= $element_inhalt;
}
$xmlFile = "http://setiathome.ssl.berkeley.edu/fcgi-bin/fcgi?cmd=user_xml&email=oelei@web.de";
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "cdata");
$fp = fopen($xmlfile,"r");

while( $elem = fread($fp,1024)) {
 if (!xml_parse($parser, $elem,feof($fp))) {
  die "xml Fehler"
 }
}
fclose($fp);
xml_parser_free($parser);

?>
 
Zuletzt bearbeitet: