如果您想使用DOM,则必须了解这个概念。DOM文档中的所有内容(包括DOMdocument)都是一个节点。
DOMdocument是节点的分层树结构。它从根节点开始。该根节点可以有子节点,所有这些子节点都可以自己拥有子节点。基本上,a
DOMdocument中的所有内容都是某种节点类型,无论是元素,属性还是文本内容。
HTML Legend: / UPPERCASE = DOMElement HEAD BODY lowercase = DOMAttr / "Quoted" = DOMText TITLE DIV - class - "header" | "The Title" H1 |"Welcome to Nodeville"
上图显示了带有某些节点的DOMdocument。有一个带有两个子元素(HEAD和BODY)的根元素(HTML)。连接线称为轴。如果将轴跟随到TITLE元素,您将看到它具有一个DOMText叶。这很重要,因为它说明了一个经常被忽视的事情:
<title>The Title</title>
不是一个,而是两个节点。带有DOMText子级的DOMElement。同样,这
<div >
实际上是三个节点:带有DOMAttr的DOMElement持有DOMText。由于所有这些都从DOMNode继承其属性和方法,因此必须熟悉DOMNode类。
实际上,这意味着您获取的DIV已链接到文档中的所有其他节点。您可以随时移至根元素或向下移至叶子。都在那里。您只需要查询或遍历文档以获取所需信息。
无论你做的是通过遍历
childNodes中的
DIV或使用
getElementByTagName()或XPath是你。您只需要了解您不是在使用原始HTML,而是使用代表整个HTML文档的节点。
如果需要有关从文档中提取特定信息的帮助,则需要澄清要从文档中获取哪些信息。例如,您可以询问如何从表中获取所有链接,然后我们可以回答以下问题:
$div = $dom->getElementById('showContent');foreach ($div->getElementsByTagName('a') as $link) { echo $dom->saveXML($link);}但是除非您更具体,否则我们只能猜测哪些节点可能是相关的。



