DOMXpath将选定的节点存储到数组

时间:2014-03-07 17:18:43

标签: php parsing domxpath

我有这个HTML:

$html = 
<div class="content">
<table>..</table>
<table>..</table>
<table>..</table>
<table>..</table>
<table>..</table>
<table>..</table>
<table>..</table>
<table>..</table>
</div>

和php:

$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXpath($doc);

$body = $xpath->query('/table');

这个回声出现在所有表格中:

echo $doc->saveXml($body->item(0));
  1. 我的问题是可以将EACH表(带有html标签)保存到数组中,所以它看起来像这样:

    Array (
        [0] => < table> < /table> 
        [1] => < table> < /table>
        [2] => < table> < /table>
        .
        .
        .
        [n] => < table> < /table>
    )
    
  2. 是否有一个简短的回声方式让我们说第三个表,就像这样:

    echo $doc->saveXml($body->item(3));
    

1 个答案:

答案 0 :(得分:1)

我建议使用 DomDocument 本身:

foreach ($doc->getElementsByTagName('Table') as $item) {
    $array[] = $item->getNodePath();
    // or do any other process if you want
}

要获取特定项目,请尝试以下操作:

$node = $doc->getElementsByTagName('Table')->item(3)
//Example:
echo $node->nodeValue