使用xml.dom.minidom或elementtree读取XML文件 - Python

时间:2015-08-11 18:03:22

标签: python xml dom elementtree

我的XML文件有这种形式:

<user name="John Doe" title="Manager">
This manager is responsible for...

  <group title="USA">
    <column name="Inventory">
    Inventory of the products
    </column>

    <column name="Sells">
    Sells of the products
    </column>
  </group>
</user>

用户和列可以一直打开,每个用户都可以有很多列。 我正在尝试使用ET或DOM来读取列名和行之间的描述。 使用ET,我能够读取所有标签,但不能读取标签之间的内容。例如,我无法阅读“产品的销售”

我确信这是一件简单的事情,但我是Python和整个XML主题的新手。我只能使用python 2.7。我的代码如下:

我的代码看起来像那样(它仍在进行中,但它还不完整):

with open(file.xml, 'rt') as f:
    tree = ET.parse(f)

    for node in tree.iter():
        if node.tag == 'column':
            print node

2 个答案:

答案 0 :(得分:1)

我没有您的代码,因此无法看到您在做什么,但q.put("text")应该会为您提供代码的文字。例如:

tag.text

答案 1 :(得分:0)

最后,我设法找出了整个代码,它对我有用。

for node in tree.iter():
        if node.tag == 'user':
            userName = node.attrib['name']
            #print userName
            for group in node.getchildren():
                if group.tag == 'group':
                    groupName =  group.attrib['title']
                    #print groupName
                    for column in group.getchildren():
                        if column.tag == 'column':
                            columnName = column.attrib['name']
                            columnDesc = column.text
                            #print columnName, column.text