【问题标题】:Making dom parsing using php case insensitive使用php进行dom解析不区分大小写
【发布时间】:2012-07-19 19:29:54
【问题描述】:

我在 php 中使用 domxpath 解析 html,并从网页中提取描述。但是我面临的问题是它区分大小写并且如果以不同的大小写写任何东西都会出错。这是我的代码:

$d=new DOMDocument();
$d->loadHTML($source);
$domx = new DOMXPath($d);
$description=$domx->query("//meta[@name='description']")->item(0)->getAttribute('content');

当一切都是小写时它工作正常,但如果任何其他情况下写的都会出错。是否有任何标志或东西可以使 domxpath 不区分大小写。

【问题讨论】:

  • 这个答案是关于 xml 的,我对 domxpath 很新并且正在解析 html 数据,所以之前没有检查过这个答案。
  • php.net/manual/en/domxpath.query.php#77048 这个注释暗示如果你使用DOMDocument::loadHTML(),在你的xpath表达式中使用小写字母应该总是有效的。你测试过这个吗?
  • @kgb 此注释暗示元素和属性名称不区分大小写,但 'description' 是元元素的 name 属性值,区分大小写。

标签: php html-parsing domxpath


【解决方案1】:

这可能是作弊,但这有帮助吗?

$d=new DOMDocument();
$d->loadHTML(mb_strtolower($source));

这将使所有内容也变成小写...

【讨论】:

  • 我应该说创新的解决方案,但我必须使用提取的描述,这个解决方案会改变它的大小写,所以不是一个好主意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-16
  • 1970-01-01
  • 2012-03-09
相关资源
最近更新 更多