Python XML-获取两个节点之间的内容

时间:2012-10-20 21:29:11

标签: python xml minidom

这是我的xml文件

<gui>
<object class="wxPanel" name="new"> 
     <object class="wxBoxSizer"> 
        <orient>wxVERTICAL</orient> 
        <object class="sizeritem"> 
            <object class="wxTextCtrl" name="a"></object>
        </object>  
            <option>1</option> 
            <flag>wxEXPAND</flag> 
        </object> 
</object>
</gui>

我想准确了解gui标签之间的内容

所以我想要这个:

<object class="wxPanel" name="new"> 
     <object class="wxBoxSizer"> 
        <orient>wxVERTICAL</orient> 
        <object class="sizeritem"> 
            <object class="wxTextCtrl" name="a"></object>
        </object>  
            <option>1</option> 
            <flag>wxEXPAND</flag> 
        </object> 
</object>

我目前正在使用

minidom.parse("path to xml").getElementsByTagName('gui')[0].firstChild.nodeValue

但是,这不能将xml作为字符串。

2 个答案:

答案 0 :(得分:0)

尝试toxml

gui = minidom.parse("path to xml").getElementsByTagName('gui')[0]
gui.getElementsByTagName('object')[0].toxml()

答案 1 :(得分:0)

您可能正在使用更合适的解析器。 ElementParser可以很好地完成这个任务:

from xml.etree import ElementTree as ET
tree = ET.parse('path/to/xml.xml')
gui  = tree.getroot()
ET.tostring(gui.getchildren()[0])

现在这一切都看起来有点hackish,无论如何,无论你使用哪种解析器,它都可能不会非常可靠。