使用Python的Minidom解析XML

时间:2015-03-26 22:03:57

标签: python xml youtube minidom

我在使用Minidom解析Youtube XML文件时遇到了一些麻烦。该文件的内容可在此link找到。我将其保存在名为“ytxml.xml”的文件中。

我遇到的问题是我无法从此文件中获取所需的所有信息。

此时,我正在尝试从代码中获取第一个“href”属性(其中“href”对应于视频文件的YouTube链接)。到目前为止,我已经获得了用户实例,视频标题,用户名和视频说明,但我无法获得这些“href”链接。

哪里出错了?我找了一个类似的问题,但我没有找到任何有用的东西。到目前为止,这是我的代码:

from xml.dom import minidom

doc = minidom.parse("ytxml.xml")

def getNodeText(node):
    nodelist = node.childNodes
    result = []
    for node in nodelist:
        if node.nodeType == node.TEXT_NODE:
            result.append(node.data)
        return ' '.join(result)


tag_one = doc.getElementsByTagName("entry")
tag_two = doc.getElementsByTagName("media:player")

for tag in tag_one:
    media_title = tag.getAttribute("media:title")
    media_title_data = tag.getElementsByTagName("media:title")[0]
    print getNodeText(media_title_data)
    media_desc = tag.getAttribute("media:description")
    media_desc_data = tag.getElementsByTagName("media:description")[0]
    print getNodeText(media_desc_data)
    author = tag.getAttribute("name")
    author_data = tag.getElementsByTagName("name")[0]
    print getNodeText(author_data)
    user_instance = tag.getAttribute("uri")
    user_instance_data = tag.getElementsByTagName("uri")[0]
    print getNodeText(user_instance_data)


for tag in tag_two:
    media_player_data = tag.getAttribute("href")
    print media_player_data

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

最后一个for循环返回空格,因为它返回NoneTypes。事实证明,我需要的数据位于content标记下src。另外......我建议不要使用Minidom。 BeautifulSoup好多了!