shine
shine

Reputation: 89

How to get <li> inner html using php DOM method

How to get <li> inner html using php DOM method these are in php string variable ihave to filter li inner html

<div class="cModule myphotos">
<h3><span>My photos</span></h3>
 <ul class="cResetList cThumbList clrfix">
     <li>
          <a href="/projects/mysportsjam/index.php/joom-social/103-shine/photos/photo?albumid=12#photoid=67" hidefocus="true" style="outline: none;"><img class="cAvatar jomNameTips cAvatar-sidebar" title="Uploaded by shine s" src="http://107.20.167.165/projects/mysportsjam/images/photos/103/12/thumb_05c0beeb8f0f32a08538dad7.jpg" alt="shine s"></a>
    </li>

    <li>
    <a href="/projects/mysportsjam/index.php/joom-social/103-shine/photos/photo?albumid=12#photoid=43" hidefocus="true" style="outline: none;"><img class="cAvatar jomNameTips cAvatar-sidebar" src="http://107.20.167.165/projects/mysportsjam/images/photos/103/12/thumb_c122ff8dafd2edeba377a1cd.jpg" alt="shine s" original-title="Uploaded by shine s"></a>
    </li>

    <li>
    <a href="/projects/mysportsjam/index.php/joom-social/103-shine/photos/photo?albumid=12#photoid=66" hidefocus="true" style="outline: none;"><img class="cAvatar jomNameTips cAvatar-sidebar" title="Uploaded by shine s" src="http://107.20.167.165/projects/mysportsjam/images/photos/103/12/thumb_9414b5dff6c8644d197ff684.jpg" alt="shine s"></a>
    </li>
            </ul>

    <div class="app-box-footer">
    <a href="/projects/mysportsjam/index.php/joom-social/103-shine/photos" hidefocus="true" style="outline: none;">View all photos</a>
</div>
    </div>

how to filter li inner html href link and image tag.

Upvotes: 1

Views: 966

Answers (1)

kelunik
kelunik

Reputation: 6908

You can use DOMDocument for that.

The sample code shows how to get the href attribute. I think you can figure out yourself how to get the image's src.

<?php

$xml = new DOMDocument();
$xml->loadHTML($body);

$nodes = $xml->getElementsByTagName('li');

for($curr = 0; $curr < $nodes->length; $curr++) {
    $li = $nodes->item($curr);

    $innerHTML= '';
    $children = $li->childNodes;
    foreach ($children as $child) {
        $innerHTML .= $child->ownerDocument->saveXML( $child );
    }

    print $innerHTML;

    foreach($li->childNodes as $child) {
        $a = $child;

        if(is_a($a, "DOMElement")) {
            $href = $a->getAttribute('href');

            print "{$href}\n";
        }
    }

    print "\n";
}

Upvotes: 2

Related Questions