Ankündigung

Einklappen
Keine Ankündigung bisher.

xml mit Simplexml

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • xml mit Simplexml

    Hallo zusammen,

    ich habe folgenden xml-Datei:

    Code:
    <eta version="1.0">
    <value uri="/user/var/40/10021/0/0/12153" strValue="0h 48m" unit="" decPlaces="0" scaleFactor="1" advTextOffset="0">2930</value>
    </eta>
    Diese möchte ich nun mit simplexml verarbeiten. Allerdings fehlen die Attribute wenn ich die Datei einlesen.

    Code:
    SimpleXMLElement Object
    (
         [@attributes] => Array
             (
                 [version] => 1.0
             )
          [value] => 2930
    )
    Das ist mein PHP Code dazu:
    PHP-Code:
    // Element der Heizung auslesen
    $xmlfile $this->heizung_addr "/user/var" $wert;
    if ( 
    self::class_debug == true )
    {
      echo 
    "<pre>";
      
    print_r($xmlfile);
      echo 
    "</pre>";
    }
    $xml_element simplexml_load_file rawurlencode $xmlfile ));
    if ( 
    self::class_debug == true )
    {
      echo 
    "<pre>";
      
    print_r $xml_element );
      echo 
    "</pre>";

    Ich steh grad auf dem Schlauch, was mache ich falsch?

    Danke

    Gruß
    Markus


  • #2
    Runter vom Schlauch und Google befragen - bzw. siehe Beispiele im PHP Manual:

    http://php.net/manual/de/function.si...ring.php#80855

    adaptiert:

    PHP-Code:
    $string '<eta version="1.0">
    <value uri="/user/var/40/10021/0/0/12153" strValue="0h 48m" unit="" decPlaces="0" scaleFactor="1" advTextOffset="0">2930</value>
    </eta>'
    ;

    $xml simplexml_load_string($string);

    echo 
    "<pre>";
    print_r($xml);

    foreach (
    $xml->value as $value){ 
        
    print_r($value); 
    }
    echo 
    "</pre>"
    Code:
    SimpleXMLElement Object
    (
        [@attributes] => Array
            (
                [version] => 1.0
            )
    
        [value] => 2930
    )
    SimpleXMLElement Object
    (
        [@attributes] => Array
            (
                [uri] => /user/var/40/10021/0/0/12153
                [strValue] => 0h 48m
                [unit] => 
                [decPlaces] => 0
                [scaleFactor] => 1
                [advTextOffset] => 0
            )
    
    )
    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Manchmal steht man so auf dem Schlauch, da hilft nichts mehr.

      Ehrlich gesagt habe ich die Anwendung von der simplexml Klasse auch noch nicht ganz überrissen.

      Wenn ich nun auf die Attribute zugreifen will dann fällt mir jetzt folgendes ein:

      PHP-Code:
      foreach ( $xml->value-> attributes () as $name => $wert )
      {

      Aber irgendwie steht ich wirklich auf dem Schlauch. An einer anderen Stelle wo ich auf die Attribute zugreifen will geht das so aber hier nicht.

      Nächste Frage ist wie komme ich an den Wert heran, der zwischen <value> und </value> steht?

      Kommentar


      • #4
        Aber irgendwie steht ich wirklich auf dem Schlauch. An einer anderen Stelle wo ich auf die Attribute zugreifen will geht das so aber hier nicht.
        google ist nicht so deines, was?

        https://www.google.at/?gws_rd=ssl#q=...exml+attribute

        PHP-Code:
        $string =
        '<eta version="1.0"> 
        <value uri="/user/var/40/10021/0/0/12153" strValue="0h 48m" unit="" decPlaces="0" scaleFactor="1" advTextOffset="0">2930</value> 
        </eta>'


        $xml simplexml_load_string($string); 

        $attrs $xml->value->attributes();
        echo 
        $attrs["uri"]; // /user/var/40/10021/0/0/12153

        // oder direkt

        echo $xml->value["uri"]; // /user/var/40/10021/0/0/12153 
        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Den ersten Treffer bei Google kenne ich sogar, nur hats eben mit meiner Abwandlung davon mit der foreach Schleife nicht geklappt.

          Kommentar

          Lädt...
          X