PHP DOMDocument如何获取此标记的内容?

Ted*_*Ted 1 html php parsing domdocument

我正在使用domDocument希望解析这个小的HTML代码.我正在寻找具体的特定span标签id.

<span id="CPHCenter_lblOperandName">Hello world</span>
Run Code Online (Sandbox Code Playgroud)

我的代码:

$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;
}
Run Code Online (Sandbox Code Playgroud)

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

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

Adi*_*idi 6

您可以使用简单的getElementById:

$dom->getElementById('CPHCenter_lblOperandName')->nodeValue
Run Code Online (Sandbox Code Playgroud)

或以选择方式:

$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;
}
Run Code Online (Sandbox Code Playgroud)