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

  • freehawk
    hat ein Thema erstellt xml mit Simplexml.

    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

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

    Einen Kommentar schreiben:


  • hausl
    antwortet
    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 

    Einen Kommentar schreiben:


  • freehawk
    antwortet
    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?

    Einen Kommentar schreiben:


  • hausl
    antwortet
    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
            )
    
    )

    Einen Kommentar schreiben:

Lädt...
X