繁体   English   中英

带有HTML5和PHP的xpath

[英]xpath with HTML5 and PHP

我在PHP中将XPath与HTML5结合使用时遇到问题。 我正在使用此代码,但不适用于HTML5元素,有人可以帮助我吗?

$dom = new DomDocument;
$dom->loadHTMLFile($url);
$xpath = new DomXPath($dom);
$main = $xpath->query("//object");

foreach ($main as $i => $a) 
{
    echo $a->nodeValue;
}

我要使用object元素,这是一个:

<object type="application/x-shockwave-flash" data="" width="700" height="400">

我可以完美地处理任何元素:

test.html

<html>
  <body>
    <object type="application/x-shockwave-flash" data="" width="700" height="400"></object>
  </body>
</html>

test.php

$file = "test.html";
$dom = new DomDocument;
$dom->loadHTMLFile($file);
$xpath = new DomXPath($dom);
$elements = $xpath->query("/html/body/object");

if (!is_null($elements)) {
    foreach ($elements as $element) {
        print_r($element);
    }
}

即使您省略了</object>结束标记( 您也不应该这样做 )。

HTML5不必是格式正确的xml。

因此,您不能保证xpath将起作用。 要浏览DOM,您应该使用诸如getElementsByTagName()之类的dom方法,或者如果您有类似izzizz或jquery之类的方法,请使用选择器$(“ object”)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM