Ankündigung

Einklappen
Keine Ankündigung bisher.

XML Datei mit variabler Struktur in HTML ausgeben

Einklappen

Neue Werbung 2019

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

  • XML Datei mit variabler Struktur in HTML ausgeben

    Hallo zusammen,

    ich möchte XML Dateien deren Struktur variiert in HTML ausgeben.

    Bsp-XML:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    -<modem>
    -<cmts ip="xxx.xxx.xxx.xxx">
    	<IPAddress alarm="1">yyy.yyy.yyy.yyy</IPAddress>
    	<HostInterface>C8/A1/E0/UB</HostInterface>
    	<PrimaryDownstream>I8/X1/S0:W2 (RfId : 0815)</PrimaryDownstream>
    	-<UpstreamChannel>
    		<value>US0</value>
    		<value>US1</value>
    	</UpstreamChannel>
    	-<RangingStatus>
    		<value>sta</value>
    		<value>sta</value>
    	</RangingStatus>
    	-<UpstreamSNR>
    		<value>36.12</value>
    		<value>36.12</value>
    	</UpstreamSNR>
    	-<ReceivedPower>
    		<value>5.50</value>
    		<value>6.00</value>
    	</ReceivedPower>
    	<ModemStatus>w-online(pt)</ModemStatus>
    	<Flaps>2(Apr 3 11:26:02)</Flaps>
    	<Errors>0 CRCs, 0 HCSes</Errors>
    </cmts>
    -<remote>
    	<rx>61.3</rx>
    	<tx>109.5</tx>
    	<snr>40.8</snr>
    	<typ>U571</typ>
    	<bootFile>bootfile-20140519.bin</bootFile>
    	<snmpError>0</snmpError>
    	<pksUnerrored>1225145136</pksUnerrored>
    	<pksCorrected>3869</pksCorrected>
    	<pksUncorrectable>115</pksUncorrectable>
    	<microreflec>34</microreflec>
    	<freqUs>57</freqUs>
    	<freqDs>506</freqDs>
    	<ethPortAdmin>up</ethPortAdmin>
    	<ethPortLink>up</ethPortLink>
    </remote>
    </modem>
    Mein Code soweit:

    PHP-Code:
    <?php

      $file 
    'stadt.xml';
      
    $xml_data simplexml_load_file($file);
      
    $knoten_wurzel_array $xml_data->children();
      
    foreach(
    $xml_data->children() as $child)
    {
      echo 
    $child->getName() . ": " $child "<br />";
      
      foreach(
    $child->children() as $grandchild)
        echo 
    $grandchild->getName() . ": " $grandchild "<br />";

        
        } 
      
    ?>
    Mein Problem:

    Ich bekomme die Values nicht ausgegeben, immer wenn ich eine weitere Schleife einbaue, bekomme ich das selbe (oder gar kein) Ergebnis... Ich steh grade aufm Schlauch

    Tüpfelchen:
    Nur Values auszugeben, wenn auch welche drunter hängen.

    Vielen Dank für Eure Tips (im Voraus)
    der WEMA


  • #2
    was heisst struktur variiert?
    kann man das über xslt nicht besser lösen?

    also: was willste wie ausgeben?

    Kommentar


    • #3
      Hallo Moma,

      die Values variieren zwischen 1-3 Werten (Us0, Us1, Us2 zBsp.).

      Ja xslt wäre cooler, leider baue ich das script in eine betsehende Seite ein und denke da ist html code besser geeignet, das es nur eine Tabelle füllen soll. Der Rest der Seite kommt woanders her, bzw. wird mit Ajax aktualisiert.

      Kommentar


      • #4
        Schau dir XPath an und selektiere alle Elemente, die Childs mit Namen value haben.
        PHP-Klassen auf github

        Kommentar


        • #5

          an das dachte ich, kommt ja wahlweise html raus.
          http://www.php.net/manual/en/book.xsl.php

          Kommentar


          • #6
            Hallo,

            Ich habe jetzt das xml File mithilfe eines xsl Files formatiert. Soweit so gut. Nun muss ich es in ein bestehendes Html File einfügen. Eine Möglichkeit, die ich gefunden habe wäre diese:

            PHP-Code:
            <?php

               $xslDoc 
            = new DOMDocument();
               
            $xslDoc->load("test.xsl");

               
            $xmlDoc = new DOMDocument();
               
            $xmlDoc->load("test.xml");

               
            $proc = new XSLTProcessor();
               
            $proc->importStylesheet($xslDoc);
               echo 
            $proc->transformToXML($xmlDoc);

            ?>
            Gibt es bessere, flexiblere Methoden, xml Daten (xml Datei) in ein bestehendes Html File einzubauen?
            Wie hoch wäre der Aufwand so etwas mit Ajax dynamisch zu machen? also in meinem Fall einmal die Sekunde zu aktualisieren.

            Zur Erläuterung:
            Ich hab mal vor ca. 15 Jahren viel Delphi programmiert und bin ziemlich eingerostet , wie ich merke. Deswegen nochmal ein extra Danke für Eure Hilfe.

            Kommentar


            • #7
              Zitat von http://www.php.net/manual/en/book.xsl.php
              PHP-Code:
              <?php
              /**
               * @param  $xml
               * @param  $xsl
               * @return string xml
               */
              function transform($xml$xsl) {
                 
              $xslt = new XSLTProcessor();
                 
              $xslt->importStylesheet(new  SimpleXMLElement($xsl));
                 return 
              $xslt->transformToXml(new SimpleXMLElement($xml));
              }
              ?>
              flexibler?

              verstehe dich nicht, sorry.

              Kommentar


              • #8
                http://www.developer.com/xml/article...Components.htm
                Ich hoffe das ist flexibel genug.

                Kommentar

                Lädt...
                X