如何获取文档行?

时间:2012-06-19 11:00:45

标签: php dom xpath

我正在创建一个使用文件字符串的工具,我需要获取找到节点的行号。是的,我有这个:

$dom = new DOMDocument('1.0');
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
foreach ($xpath->query("//text()") as $q) {
    // $line = WHAT???
    $strings[trim($q->nodeValue)] = $line;
}

我需要知道哪一行开始我在$strings数组中存储的字符串。是否有可能得到它?

1 个答案:

答案 0 :(得分:1)

每个DOMNode对象都有一个getLineNo()函数返回此值。在您的情况下,它是DOMText对象,从DOMNode延伸:

foreach ($xpath->query("//text()") as $q) {
    $line = $q->getLineNo();
    $strings[trim($q->nodeValue)] = $line;
}

如果您还没有使用该功能,则可能需要升级到PHP 5.3。