The DOM tree defines the logical structure of documents and controls how you access and manipulate these documents. Using the DOM, developers can create XML or HTML documents, manipulate their results, and add, modify, and delete document elements and content. The DOM can be accessed from any programming language. This article uses the PHP 5 DOM extension, which is part of the PHP core, so there is no need to install other software besides PHP.
DOM tree nodes follow XML naming conventions, such as:
1. Document node--represents the DOMDocument interface
2. Element node--represents the DOMElement interface
3. Attribute node--represents the DOMAttr interface
4. Comment node--represents the DOMComment interface
5. Text node--represents the DOMText interface
Extracting elements
This section introduces how to extract elements and values from the DOM tree. This article uses Book.xml as an example to illustrate, and its content is shown in Listing 1.
List 1 Book.xml
<ol class="dp-xml"> <li class="alt"> <span><strong><font color="#006699"><span class="tag"><?</SPAN><SPAN class=tag- name>xml</SPAN></FONT></STRONG><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>version</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"1.0"</FONT></SPAN><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>encoding</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"UTF-8"</FONT></SPAN><SPAN> </SPAN><SPAN class=attribute><FONT color=#ff0000>standalone</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"yes"</FONT></SPAN><SPAN> </SPAN><SPAN class=tag><STRONG><FONT color=#006699>?></span></font></strong></span><span> </span> </li> <li> <span></span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag- name>book</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span></span><span class="comments"><font color="#008200"><!--XML Processing [part I] --></font></span><span> </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag- name>name</SPAN><SPAN class=tag>></span></font></strong><span>XML Processing I</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>name</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>author</SPAN><SPAN class=tag>></span></font></strong><span>John Smith Jr.</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>author</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>publisher</SPAN><SPAN class=tag>></span></font></strong><span>HisOwnTM</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag- name>publisher</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>ISBN</SPAN><SPAN class=tag>></span></font></strong><span>111-222-333-4441</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>ISBN</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>contents</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag- name>chapter_I</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>title</SPAN><SPAN class=tag>></span></font></strong><span>What is XML about ?</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>title</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag- name>content</SPAN><SPAN class=tag>></span></font></strong><span>XML (Extensible Markup Language) is a ...</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>content</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>chapter_I</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag- name>chapter_II</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>title</SPAN><SPAN class=tag>></span></font></strong><span>SAX</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag- name>title</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag- name>content</SPAN><SPAN class=tag>></span></font></strong><span>SAX is a simple API for ...</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>content</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>chapter_II</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag- name>chapter_III</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>title</SPAN><SPAN class=tag>></span></font></strong><span>StAX</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag- name>title</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag- name>content</SPAN><SPAN class=tag>></span></font></strong><span>Much powerful and flexible, StAX, is very...</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>content</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>chapter_III</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag- name>chapter_IV</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>title</SPAN><SPAN class=tag>></span></font></strong><span>DOM </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>subtitle</SPAN><SPAN class=tag>></span></font></strong><span>DOM concept </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>continut</SPAN><SPAN class=tag>></span></font></strong><span>Starting to use DOM...</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>continut</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag -name>subtitle</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>subchapter_IV_I</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>title</SPAN><SPAN class=tag>></span></font></strong><span>First DOM application...</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>title</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span> </span><st rong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag-name>content</SPAN><SPAN class=tag>></span></font><span>Here it is your first DOM application...</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>content</SPAN><SPAN class=tag>></span></font></strong><span> </span><li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag -name>subchapter_IV_I</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>title</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag- name>chapter_IV</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span> </span><strong><font color="#006699"><span class="tag"><</SPAN><SPAN class=tag- name>end</SPAN><SPAN class=tag>></span></font></strong><span>The end...</span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>end</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li class="alt"> <span> </span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>contents</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li> <li> <span></span><span class="comments"><font color="#008200"><!-- See you in XML Processing [part II] --></font></span><span> </span> </li> <li class="alt"> <span></span><strong><font color="#006699"><span class="tag"></</SPAN><SPAN class=tag-name>book</SPAN><SPAN class=tag>></span></font></strong><span> </span> </li></st> </li> </ol>
First download the PHP code compression package used in this article,