|
例 9.12. Drilling down all the way to text
>>> grammarNode
<DOM Element: grammar at 19167148>
>>> refNode = grammarNode.childNodes[1]
>>> refNode
<DOM Element: ref at 17987740>
>>> refNode.childNodes
[<DOM Text node "\n">, <DOM Text node " ">, <DOM Element: p at 19315844>, \
<DOM Text node "\n">, <DOM Text node " ">, \
<DOM Element: p at 19462036>, <DOM Text node "\n">]
>>> pNode = refNode.childNodes[2]
>>> pNode
<DOM Element: p at 19315844>
>>> print pNode.toxml()
<p>0</p>
>>> pNode.firstChild
<DOM Text node "0">
>>> pNode.firstChild.data
u'0' 正如你在前面的例子中看到的,第一个ref元素是grammarNode.childNodes[1],因为childNodes[0]是一个代表硬回车的 Text 节点。
ref元素有它自己的子节点集合,一个表示硬回车,一个独立表示空格的,一个用于p元素的,诸如此类。
你甚至可以在这里使用 toxml 方法,深深嵌套在文档中。
p元素只有一个子节点(在这个例子中,你无法知道这一点,但是如果你不信,可以看看pNode.childNodes),而且它是表示单字符'0'的一个 Text 节点。
Text 节点的.data属性可以向你提供文本节点真正代表的字符串。但是字符串前面的'u'是什么意思呢?答案将自己专门有一部分来论述。 |
|