方法名称: DOMNode::normalize()
适用版本: 以上 PHP 5, PHP 7, PHP 8
用法: DOMNode::normalize() 方法用于将当前节点以及其子节点中的空文本节点合并为一个单独的文本节点,并移除多余的空格和换行符。这有助于使文档结构更加简洁和清晰。
方法参数: 无
返回值: 该方法没有返回值。
示例代码:
$xmlString = '<?xml version="1.0" encoding="UTF-8"?>
<rootNode>
<childNode>
Text node content
<!-- Comment -->
Another text node
</childNode>
</rootNode>';
$dom = new DOMDocument();
$dom->loadXML($xmlString);
$rootNode = $dom->getElementsByTagName('rootNode')->item(0);
$rootNode->normalize();
$childNodes = $rootNode->getElementsByTagName('childNode')->item(0)->childNodes;
foreach ($childNodes as $childNode) {
if ($childNode->nodeType === XML_TEXT_NODE) {
echo $childNode->nodeValue . "\n";
}
}
输出结果:
Text node content
Another text node
在上述示例中,我们创建了一个包含空文本节点和注释节点的 XML 字符串。然后,使用 DOMDocument 类加载 XML,并根据标签名获取根节点。接下来,我们调用 DOMNode::normalize() 方法,它会将多个文本节点合并为一个,并移除节点之间的空格和换行符。最后,我们迭代子节点并输出所有文本节点的内容。注意,合并后的文本节点中的换行符被保留,因为它们是文本节点的一部分。