Christian Altmann: simplexml Ausgabe zeigt nichts an

Hallo,

es existiert folgende XML-Datei (test.xml):

<?xml version="1.0" encoding="utf-8"?>
<ProgramList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <TotalRecords>12</TotalRecords>

<Programs>

<ProgramSummary>
      <ProgramID>1</ProgramID>
      <Title>Blabla 1</Title>
    </ProgramSummary>

<ProgramSummary>
      <ProgramID>2</ProgramID>
      <Title>Blabla 2</Title>
    </ProgramSummary>

</Programs>

</ProgramList>

Nun soll TotalRecords ausgegeben werden sowie die Liste durchlaufen werden und jeweils die ProgramID ausgegeben werden:

<?

$xml = simplexml_load_file('test.xml');

echo $xml->TotalRecords[0];

foreach($xml->Programs as $news) {

echo $news->ProgramID."<br>";

}

?>

TotalRecords stimmt, den Rest zeigt er aber nicht an...

  1. Hellihello Christian,

    try thisone:

      
    <?php  
    ob_start();  
    echo "<?"?>xml version="1.0" encoding="utf-8"?>  
    <ProgramList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
      <TotalRecords>12</TotalRecords>  
      <Programs>  
        <ProgramSummary>  
          <ProgramID>1</ProgramID>  
          <Title>Blabla 1</Title>  
        </ProgramSummary>  
        <ProgramSummary>  
          <ProgramID>2</ProgramID>  
          <Title>Blabla 2</Title>  
        </ProgramSummary>  
      </Programs>  
    </ProgramList>  
      
    <?php  
    $xml_string=ob_get_clean();  
    ?>  
    <?php  
      
    $xml = simplexml_load_string($xml_string);  
      
      
    echo "total records:  
     $xml->TotalRecords  
    ---  
    ";  
    echo "Programm Summary Title 1 :  
    ". $xml->Programs->ProgramSummary[0]->Title ."  
    ---  
    ";  
    foreach($xml->Programs->ProgramSummary as $key => $news) {  
     var_dump($news);  
     echo $key .": ". $news->Title."<br>";  
    }  
    ?>  
    
    

    Gruß,

    frankx

    1. Hellihello Christian,

      hellohelli zurück! nun was soll ich sagen... danke! :) es funktioniert. weiß jetzt auch warum vorher nicht :)

    2. Hellihello,

      im Grunde aber eigentlich "logischer", eine NodeList zu erzeugen:

        
      $ProgramSummarys=$xml->xpath("*/ProgramSummary");  
      echo"  
      ---------------  
      ";  
      var_dump($ProgramSummarys);  
      echo"  
      ---------------  
      ";  
      foreach($ProgramSummarys as $Programsummary) {  
       echo $Programsummary->Title."<br>";  
      }  
      
      

      Gruß,

      frankx

      1. Hellihello

          
        //besser wohl:  
        $ProgramSummarys=$xml->xpath("//ProgramSummary");  
        // statt $ProgramSummarys=$xml->xpath("*/ProgramSummary");  
        
        

        Gruß,

        frankx