Files
2nd/10_Wiki/Topic_Programming/Topic_PHP/PHP_XML_DOM.md
T
Antigravity Agent e9cbf23ab5 docs(10_Wiki): Dev 폴더 누락분 반영 — Topic_Programming으로 통합
이전 재구성 작업에서 Dev/ 폴더가 누락되었던 것을 반영.

- Dev/Topic_Programming(중첩 폴더, 78개)은 Dev 자체 최상위 폴더들
  (Architecture/Conventions/Engineering_Intelligence 등)과 완전 중복이라 제거.
- Dev 최상위 엔지니어링 지식 폴더(Architecture/Conventions/Engineering_Intelligence/
  Failure_Library/Generalized_Principles/Language/Pattern_Catalog/Platform_Guides/
  Subsystems, 77개)는 이미 Topic_Programming/Topic_Programming에 더 최신 버전이
  존재해 중복 제거(고유 콘텐츠 1개는 예외 처리하여 이동 보존).
- Dev의 W3Schools 언어 튜토리얼 폴더(Topic_C/CPP/CSS/CSharp/HOWTO/HTML/Java/
  JavaScript/PHP/Python/SQL/W3CSS, 1201개)는 전부 Topic_Programming 하위로 이동.
- 에이전트 운영 상태(.astra/docs)는 그대로 유지, 콘텐츠 폴더만 정리.
- Topic_Programming 최종 문서 수: 2784 → 3985.
2026-07-05 00:39:13 +09:00

3.6 KiB

id, title, category, status, verification_status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, created_at, updated_at, review_reason, merge_history, tags, raw_sources, applied_in, github_commit
id title category status verification_status canonical_id aliases duplicate_of source_trust_level confidence_score created_at updated_at review_reason merge_history tags raw_sources applied_in github_commit
php-xml-dom PHP XML DOM Programming_Language draft conceptual
DOMDocument
PHP DOM 파서
B 0.89 2026-07-04 2026-07-04
php
programming
w3schools
xml
dom
https://www.w3schools.com/php/php_xml_dom.asp

PHP XML DOM

🎯 한 줄 통찰 (One-line insight)

Looping through DOM child nodes surfaces INVISIBLE #text nodes between every real element — the whitespace between XML tags (indentation, line breaks) becomes its own empty text node in the DOM tree, which the source explicitly warns "sometimes cause problems" if you're not aware they're there. [S1]

🧠 핵심 개념 (Core concepts)

  • DOM Parser — tree-based; loads the whole document into memory; memory-intensive for large files; part of PHP core. [S1]
  • DOMDocument — the class used to parse XML into a DOM tree structure. [S1]
  • ->load($filename) — loads an XML file into the DOMDocument object. [S1]
  • ->saveXML() — serializes the DOM back into an XML string. [S1]
  • ->documentElement — the root element of the loaded document. [S1]
  • ->childNodes — iterable collection of a node's direct children, INCLUDING whitespace-only #text nodes. [S1]
  • ->nodeName / ->nodeValue — the name and value of each node encountered while looping. [S1]

📖 세부 내용 (Details)

  • Load and output: $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML();. [S1]
  • Loop through child nodes (revealing whitespace text nodes): $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br>"; } — output alternates between real elements (to = Tove) and empty #text = entries from whitespace. [S1]

⚖️ 모순 및 업데이트 (Contradictions & updates)

  • 공백 텍스트 노드의 존재: XML 생성 시 태그 사이의 공백이 별도의 빈 텍스트 노드로 취급되며, 이를 인지하지 못하면 문제가 될 수 있다는 점이 팁으로 경고됨. [S1]

🛠️ 적용 사례 (Applied in summary)

현재 발견된 실제 적용 사례가 없습니다 — note.xml을 DOM 트리로 로드해 자식 노드를 순회하는 것이 트리 기반 파싱의 대표 실전 사례다. [S1]

💻 코드 패턴 (Code patterns)

Looping through DOM child nodes, revealing whitespace text nodes (PHP):

$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) {
    print $item->nodeName . " = " . $item->nodeValue . "<br>";
    // includes empty "#text = " entries from whitespace between tags
}

검증 상태 및 신뢰도

  • 상태: draft
  • 검증 단계: conceptual
  • 출처 신뢰도: B (W3Schools — widely used educational reference, not a primary standards body)
  • 신뢰 점수: 0.89
  • 중복 검사 결과: 신규 생성 (New discovery)

🔗 지식 그래프 (Knowledge Graph)

📚 출처 (Sources)

📝 변경 이력 (Change history)

  • 2026-07-04: Initial draft synthesized from the W3Schools "PHP DOM Parser" page (Astra wiki-curation, P-Reinforce v3.1 format).