0

指定されたマークアップから、ハイパーリンクとハイパーリンクのすべてのタイトルを抽出する必要があります

<span></span>
<span>Chapter1</span>
<span><a href="page2.htm">Chapter2</a></span>
<span><a href="page3.htm">Chapter3</a></span>

このために、次のコードを書きましたが、機能しません

$doc = new DOMDocument();
$doc->loadHTML($page_links);
$tags = $doc->getElementsByTagName('span');
foreach ($tags as $tag) {
    echo '\n'.$tag->nodeValue;
    if($tag->hasChildNodes()) {
    echo $tag->childNodes->getAttribute('href');
     } else {
            echo 'default.htm';
         }
}

私はこの出力を期待しています:

Chapter1 default.htm
Chapter2 page2.htm
Chapter3 page3.htm

等々

4

1 に答える 1

0

これを試していただけますか?

$doc = new DOMDocument();
$doc->loadHTML($page_links);
$tags = $doc->getElementsByTagName('span');
for($i=0;$i<$tags->length;$i++){
    echo $tags->item($i)->nodeValue; 
    if($tags->item($i)->hasChildNodes()) {
            if($tags->item($i)->firstChild->nodeName=='a'){
            echo " ".$tags->item($i)->firstChild->getAttribute('href').'<br/>';

            }else{
            echo " default.htm<br/>";
            }
    }
}
于 2013-11-01T18:25:29.433 に答える