使用SIMPLE HTML DOM从文件中获取HTML

时间:2013-07-23 15:06:52

标签: php html arrays string dom

这是我的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>

我正在使用Simple 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

2 个答案:

答案 0 :(得分:0)

我认为“file.txt”指的是上面的HTML ...

在我看来,你的查找('ul [class =“links”]')不包含任何内容(根据示例代码)。您是否尝试选择类型为?

的所有标签

答案 1 :(得分: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];