kostenloser Webspace werbefrei: lima-city


Mit PHP Inhalt bestimmter CSS-Klassen in Array?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    oindex

    oindex hat kostenlosen Webspace.

    Hallo

    wie kann ich aus einem HTML-String
    die Inhalte von Elementen mit bestimmten Klassen auslesen und in Array speichern?

    Beispiel: $htmlcode
    <div id="inhalt">
    <ul>
      <li>
        <h2 class="name">Titel 111</h2>
        <div class="a"> Text 1a AAAAAAA <a href="ziel1.php">Link 1</a> ... A1 </div>
        <div class="b"> Text 1b <u>BBBBBB</u> ... B1 </div>
      </li>
      <li>
        <h2 class="name">Titel 222</h2>
        <div class="a"> Text 2a aaaaaa <a href="ziel2.php">Link 2</a> ... A2 </div>
        <div class="b"> Text 2b <u>bbbbbb</u> ... B2 </div>
      </li>
      <li>
        <h2 class="name">Titel 333</h2>
        <div class="a"> Text 3a xxxxxx <a href="ziel3.php">Link 3</a> ... A3 </div>
        <div class="b"> Text 3b <u>yyyyyy</u> ... B3 </div>
      </li>
    </ul>
    </div>



    gewünschtes Ergebnis: (Array je <li> Element)
    array ( 
      [0] => Array ( 
                [name] => Titel 111
                [a] => Text 1a AAAAAAA <a href="ziel1.php">Link 1</a> ... A1 
                [b] => Text 1b <u>BBBBBB</u> ... B1 
                )
      [1] => Array ( 
                [name] => Titel 222
                [a] => Text 2a aaaaaa <a href="ziel2.php">Link 2</a> ... A2 
                [b] => Text 2b <u>bbbbbb</u> ... B2 
                )
      [2] => Array ( 
                [name] => Titel 333
                [a] => Text 3a xxxxxx <a href="ziel3.php">Link 3</a> ... A3
                [b] => Text 3b <u>yyyyyy</u> ... B3 
                )
    )



    ... preg_match() mit entsprechendenn Pattern wäre wohl eine Möglichkeit
    aber geht doch sicher auch einfacher ... ressourcen-schonender ... DOM ? ... aber wie ?!?


    wenn ich
    simplexml_load_string($htmlcode);
    versuche,
    dann werden einige HTML-Elemente samt Inhalt einfach verschluckt ... kommen nicht an ?!

    also hier ... die Tagss <a> und <u> fehlen komplett, bzw. werden zu Leerstring ?!


    Hier das Ergebnis von simplexml_load_string()
    SimpleXMLElement Object
    (
        [@attributes] => Array
            (
                [id] => inhalt
            )
    
        [ul] => SimpleXMLElement Object
            (
                [li] => Array
                    (
                        [0] => SimpleXMLElement Object
                            (
                                [h2] => Titel 111
                                [div] => Array
                                    (
                                        [0] =>  Text 1a AAAAAAA  ... A1 
                                        [1] =>  Text 1b  ... B1 
                                    )
    
                            )
    
                        [1] => SimpleXMLElement Object
                            (
                                [h2] => Titel 222
                                [div] => Array
                                    (
                                        [0] =>  Text 2a aaaaaa  ... A2 
                                        [1] =>  Text 2b  ... B2 
                                    )
    
                            )
    
                        [2] => SimpleXMLElement Object
                            (
                                [h2] => Titel 333
                                [div] => Array
                                    (
                                        [0] =>  Text 3a xxxxxx  ... A3 
                                        [1] =>  Text 3b  ... B3 
                                    )
    
                            )
    
                    )
    
            )
    
    )


    ... also Elemente (hier <a> und <u>) werden einfach nicht erfasst, sind weg ?!

    anstatt diesem:
    Text 2a aaaaaa <a href="ziel2.php">Link 2</a> ... A2

    kommt aber an:
    Text 2a aaaaaa   ... A2

    ??? also ist SimpleXML hier unbrauchbar ?!?

    wie komme ich am besten auf das (oben gezeigte) gewünschte Ergebnis?
    kann mir jemand bitte ein Beispiel mit DOM ausleen geben ?
    Danke



  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. t*****b

    Wenn du wirklich nur Elemente anhand von CSS-Selektoren auslesen möchtest, empfielt sich XPath.
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!