【发布时间】:2011-12-23 07:13:51
【问题描述】:
作为一个简单的例子,我试图获取所有包含电子邮件地址的 dom 对象。
$doc = new DOMDocument;
$doc->loadHTML($page);
$xpath = new DOMXPath($doc);
$body = $doc->getElementsByTagName('table')->item(0);
$query = "//text()[fn:matches(., '[\w\d\.-]+@[\w\d\.-]+\.[a-zA-Z]{2,4}')]"; //
$entries = $xpath->evaluate($query, $body); //
foreach ($entries as $entry) {
echo "Found {$entry->textContent}<br>\n";
}
我收到错误消息:"DOMXPath::evaluate() [domxpath.evaluate]: xmlXPathCompOpEval: function matches bound to undefined prefix fn ..."
我也试过这个方法
//text()[
php:function('BooleanPregMatch', '[\w\d\.-]+@[\w\d\.-]+\.[a-zA-Z]{2,4}', .)
]
没有成功。
我找不到很多与 fn:match 或 php:function 相关的示例。任何帮助将不胜感激。
【问题讨论】:
-
我可以建议在 match() 函数中使用双引号吗?