gpt4 book ai didi

php - 如何遍历 DOMNodeList 中的元素?

转载 作者:可可西里 更新时间:2023-10-31 22:10:34 25 4
gpt4 key购买 nike

我在遍历 DOMNodeList 中的元素时遇到问题。我正在尝试将整个段落放入一个字符串中。我可以用这个分别得到每个句子:

$node = $paragraph->item(0);  //first line of the paragraph
$node = $paragraph->item(1); //second line of the paragraph

但我似乎无法遍历所有句子并将它们放入一个字符串中。我已经试过了,但没有成功:

for($i=0; $i<3; $i++)
{
$node = $paragraph->item($i);
}

有什么想法可以做到这一点吗?

最佳答案

DOMNodeList实现Traversable,只需要使用foreach()

foreach($nodeList as $node) {
//...
}

当然 for 也是可能的。

$length = $nodeList->length;
for ($i = 0; $i < $length; $i++) {
$node = $nodeList->item($i);
//...
}

要获取节点内的所有文本内容,可以使用 $nodeValue 或 $textContent 属性:

$text = '';
foreach($nodeList as $node) {
$text .= $node->textContent;
}

但这是针对节点列表的。你说这是一段文字内容。如果您将段落作为 DOMElement 对象,它也具有 $nodeValue 和 $textContent 属性。

$text = $paragraphNode->textContent;

如果您通过 Xpath 获取节点,DOMXpath::evaluate() 可以将文本内容作为字符串返回。

$xpath = new DOMXpath($dom);
$text = $xpath->evaluate('string(//p[1])');

关于php - 如何遍历 DOMNodeList 中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20285364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com