PHP DOMDocument 如何得到这个标签的内容?

标签 php html parsing domdocument

我正在使用 domDocument 来解析这个小的 html 代码。我正在寻找具有特定 id 的特定 span 标签。

<span id="CPHCenter_lblOperandName">Hello world</span>

我的代码:

$dom = new domDocument;
@$dom->loadHTML($html); // the @ is to silence errors and misconfigures of HTML
$dom->preserveWhiteSpace = false;
$nodes = $dom->getElementsByTagName('//span[@id="CPHCenter_lblOperandName"');

foreach($nodes as $node){
    echo $node->nodeValue;
}

但出于某种原因,我认为代码或 html 有问题(我怎么知道?):

  • 当我使用 echo count($nodes); 计算节点时,结果总是 1
  • 我在节点循环中没有得到任何输出
  • 如何学习这些复杂查询的语法?
  • 我做错了什么?

最佳答案

您可以使用简单的 getElementById:

$dom->getElementById('CPHCenter_lblOperandName')->nodeValue

或选择器方式:

$selector = new DOMXPath($dom);

$list = $selector->query('/html/body//span[@id="CPHCenter_lblOperandName"]');

echo($list->item(0)->nodeValue);

//or 
foreach($list as $span) { 
    $text = $span->nodeValue;
}

关于PHP DOMDocument 如何得到这个标签的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16093402/

相关文章:

jquery - 在 jQuery 中选择第 N 个前兄弟?

linux - 使用 Bash 脚本对时间戳/换行符之间的列求和

java - 解析java中可能是JSONObject或JSONArray的json字段

php - 将数组保存到数据库但被序列化为字符串

JavaScript 表单脚本适用于 Chrome,但不适用于其他地方

javascript - 由于侧面菜单,无法捕获 ionic 中的向右滑动

algorithm - 有限语言的克莱恩之星什么时候免费?

php - MySQL 查询显示结果,但我无法通过它们进行限制?

javascript - 如果未选中复选框且输入字段为空,则禁用 jquery 中的按钮

php - Opera 字符集 UTF-8