
DOMDocument::normalizeDocument 함수는 HTML 문서의 노드들을 정렬하고 중복된 속성을 제거하는 데 사용됩니다.
노드의 순서를 유지하려면, normalizeDocument 함수를 호출하기 전에 nodeValue 속성을 null로 설정한 후, normalizeDocument 함수를 호출하는 방법을 사용할 수 있습니다. 예를 들어:
#hostingforum.kr
php
$doc = new DOMDocument();
$doc->loadHTML($html);
$doc->normalizeDocument();
foreach ($doc->childNodes as $node) {
$node->nodeValue = null;
}
$doc->normalizeDocument();
normalizeDocument 함수는 XML 문서에도 사용할 수 있습니다. 하지만 XML 문서의 경우, 노드의 순서가 변경되지 않습니다.
정규화된 문서를 얻은 후, 원래의 문서 구조가 유지되는지 확인하려면, 정규화된 문서의 노드들을 비교하는 방법을 사용할 수 있습니다. 예를 들어:
#hostingforum.kr
php
$doc = new DOMDocument();
$doc->loadHTML($html);
$doc->normalizeDocument();
$normalizedDoc = new DOMDocument();
$normalizedDoc->loadHTML($doc->saveHTML());
$originalDoc = new DOMDocument();
$originalDoc->loadHTML($html);
$normalizedNodes = $normalizedDoc->getElementsByTagName('*');
$originalNodes = $originalDoc->getElementsByTagName('*');
$normalizedNodesArray = array();
foreach ($normalizedNodes as $node) {
$normalizedNodesArray[] = $node->nodeName;
}
$originalNodesArray = array();
foreach ($originalNodes as $node) {
$originalNodesArray[] = $node->nodeName;
}
if ($normalizedNodesArray == $originalNodesArray) {
echo "원래의 문서 구조가 유지됩니다.";
} else {
echo "원래의 문서 구조가 유지되지 않습니다.";
}
이 방법은 정규화된 문서의 노드들을 배열로 변환하여 원래의 문서 구조가 유지되는지 확인합니다.
2025-05-09 19:09