Python minidom element.data只返回对象,不返回文本

Python minidom element.data只返回对象,不返回文本,python,xml-parsing,minidom,Python,Xml Parsing,Minidom,我对Python相当陌生,只是尝试解析返回以下XML语法的简单Web API的结果: <rss version='2.0'> <channel> <title>www.onlinetvrecorder.com</title> <description>OTR Torrents</description> <link>http://www.onlinetvrecorder.com/</link> <

我对Python相当陌生,只是尝试解析返回以下XML语法的简单Web API的结果:

<rss version='2.0'>
<channel>
<title>www.onlinetvrecorder.com</title>
<description>OTR Torrents</description>
<link>http://www.onlinetvrecorder.com/</link>
<copyright>OTR</copyright>
<STATIONS>
    <ITEM>
      <TITLE>3SAT</TITLE>
      <COUNTRY>DE</COUNTRY>
      <LANGUAGE>DE</LANGUAGE>
    </ITEM>
    <ITEM>
      <TITLE>ANIXE</TITLE>
      <COUNTRY>DE</COUNTRY>
      <LANGUAGE>DE</LANGUAGE>
    </ITEM>
    <ITEM>
      <TITLE>ARD</TITLE>
      <COUNTRY>DE</COUNTRY>
      <LANGUAGE>DE</LANGUAGE>
    </ITEM>
</STATIONS>
</channel>
</rss>
我的目的是获取xml中TITLE元素的文本值。但是当将返回列表的内容打印到控制台时,它看起来是这样的:

<DOM Element: TITLE at 0x368e8c0>
我做错了什么?你们谁能帮助我? 非常感谢你!事先


克里斯汀对我来说似乎很管用。您将得到一个DOM元素对象,它在大多数上下文中作为字符串工作。因此,打印x[0]等,其中x是函数的返回值,通常会得到所需的结果

如果您只想将电台名称列表作为字符串,则将其转换为字符串XML is Unicode或其子集,因此您应该使用Unicode字符串:

stations.append(unicode(stationTitleNodeValue))
顺便说一句,您所写的内容可以用列表更简洁地表达:

def parseStations(stationsResult):
    return [unicode(item.getElementsByTagName("TITLE")[0].firstChild.data)
            for item in dom.parse(stationsResult).getElementsByTagName("ITEM")]

用数据调用函数会在Python 2.7中为我返回[u'3SAT',u'ANIXE',u'ARD']。不知道为什么你的会不同。
def parseStations(stationsResult):
    return [unicode(item.getElementsByTagName("TITLE")[0].firstChild.data)
            for item in dom.parse(stationsResult).getElementsByTagName("ITEM")]