我的代码出错:'AttributeError:文档实例没有属性'find'
我可以将find函数与xml doc一起使用吗?最终我想在xml doc中找到一个单词并替换它。
from xml.dom.minidom import parse
config_file = parse('/My/File/path/config.xml')
def find_word(p):
index = p.find('Word')
return index
print find_word(config_file)
答案 0 :(得分:1)
解析后,XML文档是Document
(DOM)对象,而不是字符串。 Document
个对象确实没有find()
方法,因为您不能只搜索和替换其中的文本。
如果您知道包含要更改的文本的元素的ID或标记,则可以使用getElementById
或getElementsByTagName
,然后在返回的元素的子项中搜索文本。否则,您可以递归遍历文档中的所有节点,并在每个文本节点中搜索您要更改的文本。
有关使用文档对象模型的更多信息,请参阅DOM documentation。
答案 1 :(得分:0)
config_file这里的类型是xml.dom.minidom.Document而不是字符串。所以,发现将无法奏效。使用minidom文档中的getElementsByTagName方法查找所需的元素。
您应该执行以下操作,
>>> from xml.dom.minidom import parseString
>>> my_node = parseString('<root><wordA>word_a_value</wordA></root>');
>>> name = my_node.getElementsByTagName('wordA');
>>> print name[0].firstChild.nodeValue
word_a_value
>>>