| 導航:起始頁 > Dive Into Python > XML 處理 > 搜索元素 | << >> | ||||
深入 Python :Dive Into Python 中文版Python 從新手到專家 [Dip_5.4b_CPyUG_Release] |
|||||
通過一步步訪問每一個節點的方式遍歷 XML 文檔可能很乏味。如果你正在尋找些特別的東西,又恰恰它們深深埋入了你的 XML 文檔,有個捷徑讓你可以快速找到它:getElementsByTagName 。
在這部分,將使用 binary.xml 語法文件,它的內容如下:
<?xml version="1.0"?>
<!DOCTYPE grammar PUBLIC "-//diveintopython.org//DTD Kant Generator Pro v1.0//EN" "kgp.dtd">
<grammar>
<ref id="bit">
<p>0</p>
<p>1</p>
</ref>
<ref id="byte">
<p><xref id="bit"/><xref id="bit"/><xref id="bit"/><xref id="bit"/>\
<xref id="bit"/><xref id="bit"/><xref id="bit"/><xref id="bit"/></p>
</ref>
</grammar>它有兩個 ref,'bit' (位) 和 'byte' (字節)。一個 bit 是 '0' 或者 '1',而一個 byte 是 8 個 bit。
>>> from xml.dom import minidom >>> xmldoc = minidom.parse('binary.xml') >>> reflist = xmldoc.getElementsByTagName('ref')>>> reflist [<DOM Element: ref at 136138108>, <DOM Element: ref at 136144292>] >>> print reflist[0].toxml() <ref id="bit"> <p>0</p> <p>1</p> </ref> >>> print reflist[1].toxml() <ref id="byte"> <p><xref id="bit"/><xref id="bit"/><xref id="bit"/><xref id="bit"/>\ <xref id="bit"/><xref id="bit"/><xref id="bit"/><xref id="bit"/></p> </ref>
>>> firstref = reflist[0]>>> print firstref.toxml() <ref id="bit"> <p>0</p> <p>1</p> </ref> >>> plist = firstref.getElementsByTagName("p")
>>> plist [<DOM Element: p at 136140116>, <DOM Element: p at 136142172>] >>> print plist[0].toxml()
<p>0</p> >>> print plist[1].toxml() <p>1</p>
>>> plist = xmldoc.getElementsByTagName("p")>>> plist [<DOM Element: p at 136140116>, <DOM Element: p at 136142172>, <DOM Element: p at 136146124>] >>> plist[0].toxml()
'<p>0</p>' >>> plist[1].toxml() '<p>1</p>' >>> plist[2].toxml()
'<p><xref id="bit"/><xref id="bit"/><xref id="bit"/><xref id="bit"/>\ <xref id="bit"/><xref id="bit"/><xref id="bit"/><xref id="bit"/></p>'
<< Unicode |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
訪問元素屬性 >> |