在Python中将Doc对象转换为字符串

时间:2010-03-31 01:09:47

标签: python minidom

我正在使用minidom来解析xml文档。我用yum标签获取数据并将它们存储在列表中并计算单词的频率。但是,它不会将它们存储或读取为列表中的字符串。还有另一种方法吗?现在这就是我所拥有的:

yumNodes = [node for node in doc.getElementsByTagName("yum")]

for node in yumNodes:
    yumlist.append(t.data for t in node.childNodes if t.nodeType == t.TEXT_NODE)

for ob in yumlist:
    for o in ob:
        if word not in freqDict:
            freqDict[word] = 1
        else:
            freqDict[word] += 1

2 个答案:

答案 0 :(得分:1)

与您的问题没有直接关系,但作为一种可以改善您的代码的评论......模式

freqDict = {}
...
if word not in freqDict:
    freqDict[word] = 1
else:
    freqDict[word] += 1

通常替换为

import collections
freqDict = collections.defaultdict(int)
...
freqDict[word] += 1

或2.5之前

freqDict = {}
...
freqDict.setdefault(word, 0) += 1

答案 1 :(得分:0)

替换

yumlist.append(t.data for t in node.childNodes if t.nodeType == t.TEXT_NODE)

以下内容:

yumlist.append(t.nodeValue for t in node.childNodes if t.nodeType == 3)