0

这是我的 HTML 的一部分:

<div class="info">
    <ul class="links">
    </ul>
    <h1>TEXT #1</h1>
    <ul class="names">
       <li>
       <img src="images/flags/flag_1.gif" alt="USA"  />
       <h3>TEXT #2</h3>
       </li>
       <li>
       <img src="images/flags/flag_34.gif" alt="CZ název"  />
       <h3>TEXT #3</h3>
       </li>
    </ul>

我正在使用简单的 html DOM praser,我尝试获取 3 个文本(TEXT #1、TEXT #2、TEXT #3)

我对 PHP 代码的尝试:

$html = file_get_html('file.txt'); 
$ret = $html->find('ul[class="links"]');   //nazov filmu


foreach ($ret as $translate) {
    $translate = $translate->innertext;
    }   
    echo "$translate";   

理想的结果应该是:

echo "$translate[0]";  //TEXT #1
echo "$translate[1]";  //TEXT #2
echo "$translate[2]";  //TEXT #3
4

2 回答 2

0

PHP

$titles = array();
$html = file_get_html('file.txt'); 
$html = $html->ownerDocument;
$lists = $html->getElementsByTagName("ul")
foreach($lists as $list):
    if($list->getAttribute('class') == "links"):
        $list = $list->ownerDocument;
        $h3 = $list->getElementsByTagName('h3');
        
        foreach($h3 as $title)
            $titles->push($title);
    endif;
endforeach;

echo $titles[0];
于 2013-07-23T15:46:53.310 回答
0

我假设“file.txt”指的是上面的 HTML...

在我看来,您的 find('ul[class="links"]') 不包含任何内容(根据示例代码)。您是否尝试选择所有类型的标签?

于 2013-07-23T15:19:48.167 回答