对象未定义

时间:2016-06-02 08:13:44

标签: python python-3.x xml-parsing minidom

我的代码有问题。 该程序旨在解析文件,使用信息选择它并将它们保存在类的对象列表中。

但首先 - 它没有正确保存它们。事实上,什么都没有保存,它返回空记录。

我尝试完全创建最少的代码并进行处理。接下来它不起作用。我无法显示对象,不知道是否正确地将它们保存在类中。我还将xml更改为更小的样本,以查看搜索是否有误。

我想这很长一段时间,我的想法已经不多了,我想要一个线索。

最低代码

<p><a href="#"onclick="window.open('http://google.com');window.open('http://yahoo.com');">Click to open Google and Yahoo</a></p>

xml - 一条记录

from xml.dom import minidom

class Prot():
    def __init__(self, name=''):
        self.name = name

    def addname(self, name):
        for k in range(len(entry_list)):
            names = entry_list[k].getElementsByTagName("Names")
            for u in range(len(names)):
                nam = names[u].getElementsByTagName("Name")
                name.append(nam[u].firstChild.nodeValue)
                print(nam[u].firstChild.nodeValue)

xml = minidom.parse('RESIDUES.XML')

entry_list = xml.getElementsByTagName("Entry")
mod_list = []
for e in range(len(entry_list)):
    m = Prot(e)
    mod_list.append(m)

1 个答案:

答案 0 :(得分:0)

我非常喜欢xml.etree这项任务。假设你的xml示例在另一个元素中有多个Entry记录,我使用这个xml文件来测试我的代码:

<Records>
<Entry id="AA0003">
<Header>
<Code>AA0003</Code>
</Header>
<Names>
<Name>L-asparagine</Name>
<AlternateName>2,4-bis(azanyl)-4-oxobutanoic acid</AlternateName>
<AlternateName>2,4-diamino-4-oxobutanoic acid</AlternateName>
</Names>
</Entry>
<Entry id="??????">
<Header>
<Code>??????</Code>
</Header>
<Names>
<Name>N-Acetylglucosamine</Name>
</Names>
</Entry>
</Records>

以下是解析xml文件的代码:

from xml.etree import ElementTree

tree=ElementTree.parse('RESIDUES.XML')
for entry in tree.findall('Entry'):
    print entry.find('Names/Name').text

这导致:

L-asparagine
N-Acetylglucosamine