简单的HTML DOM如何仅访问顶级元素

时间:2011-03-04 13:51:33

标签: php html dom

我坚持使用subj问题。 这是示例代码:

include('./simple_html_dom.php');
$html = str_get_html("
<cols>
    <br>
    <col>
        content1
        <br>
        content1
    </col>
    <br>
    <col>
        <br>
        content2
        <br>
        content2
    </col>
    <br>
</cols>");

foreach($html->find('cols br') as $br) { echo $br->outertext; }

<cols> 这为我提供了<br>代码中的所有<col>代码,但我只需要在顶级<br>。{ </col>也不起作用(

更新 解决此问题:<br>

<col>
这适用于<br><br>

2 个答案:

答案 0 :(得分:1)

foreach($html->find('cols') as $cols_tag_content) {
    for($node = 0; $node < count($cols_tag_content->children()); $node++) {
        if($cols_tag_content->children($node)->tag == "br") {
            //doing whatever you want with br. i just remove it
            $cols_tag_content->children($node)->outertext = "";
        }
    }
}

答案 1 :(得分:-1)

你试过'cols&gt; br'吗?我认为'cols&gt; br'可能将其抛弃。

有关更多信息,请参阅http://www.w3schools.com/css/sel_element_gt.asp

我认为jQuery允许间距。

<强>更新

我重构了上面的伪html,使用带有以下类的div:

<div class="cols">
    <br />
    <div class="col">
        content1
        <br />
        content1
    </div>
    <br />
    <div class="col">
        <br />
        content2
        <br />
        content2
    </div>
    <br />
</div>

执行以下jQuery脚本现在可以使用:

var brs= $('div.cols > br');
alert("Found "+brs.length+" brs");