使用Python查找替换元素
我试图在一些XML代码中搜索标记并替换元素。以下是我的尝试:使用Python查找替换元素,python,xml,dom,Python,Xml,Dom,我试图在一些XML代码中搜索标记并替换元素。以下是我的尝试: from xml.dom import minidom dom = minidom.parse('../../../lib/config/folder/config.xml') for tag_type in dom.getElementsByTagName('tag_type'): tag_type.childNodes = [dom.createTextNode("Replacement Word")] print
from xml.dom import minidom
dom = minidom.parse('../../../lib/config/folder/config.xml')
for tag_type in dom.getElementsByTagName('tag_type'):
tag_type.childNodes = [dom.createTextNode("Replacement Word")]
print tag_type
我正在运行Python2.4,所以元素树不是一个选项。目前,我得到的答复是:
<DOM Element: tag_type at 0x1c28a0e0>
不确定它为什么不打印和不替换。您必须使用删除和添加节点:
for tag_type in dom.getElementsByTagName('tag_type'):
while tag_type.hasChildNodes():
tag_type.removeChild(tag_type.firstChild)
tag_type.appendChild(dom.createTextNode("Replacement Word"))
演示:
>>从xml.dom导入minidom
>>>xml=“”\
...
...
... 福
... 酒吧
...
...
... '''
>>>dom=minidom.parseString(xml)
>>>对于dom.getElementsByTagName(“标记类型”)中的标记类型:
... 而标记类型为.hasChildNodes():
... 标记类型.removeChild(标记类型.firstChild)
... tag_type.appendChild(dom.createTextNode(“替换词”))
...
>>>打印dom.toxml()
替换词
您必须使用删除和添加节点:
for tag_type in dom.getElementsByTagName('tag_type'):
while tag_type.hasChildNodes():
tag_type.removeChild(tag_type.firstChild)
tag_type.appendChild(dom.createTextNode("Replacement Word"))
演示:
>>从xml.dom导入minidom
>>>xml=“”\
...
...
... 福
... 酒吧
...
...
... '''
>>>dom=minidom.parseString(xml)
>>>对于dom.getElementsByTagName(“标记类型”)中的标记类型:
... 而标记类型为.hasChildNodes():
... 标记类型.removeChild(标记类型.firstChild)
... tag_type.appendChild(dom.createTextNode(“替换词”))
...
>>>打印dom.toxml()
替换词
Python 2.4的ElementTree。抓取你的副本,Python 1.5.2(!)和更新版本都受支持。我无法下载它。不幸的是,我被我得到的东西困住了。谢谢。您不能只分配给childNodes
。您必须使用操作树。这正是print tag\u type
要打印的内容。您期望得到什么?如果您发布输入和所需输出的样子,将对我们有很大帮助。ElementTree for Python 2.4。抓取你的副本,Python 1.5.2(!)和更新版本都受支持。我无法下载它。不幸的是,我被我得到的东西困住了。谢谢。您不能只分配给childNodes
。您必须使用操作树。这正是print tag\u type
要打印的内容。你期望什么?如果你发布输入和期望的输出是什么样子,这会对我们有很大帮助。我如何从另一个文件夹中获取文件?我不确定我是否了解你。解析文件时使用不同的文件名?当我尝试此方法时,会出现一系列错误。我想这是因为我的xml文件不在运行脚本的活动文件夹中。我是否需要设置在另一个文件夹中查找xml文件的路径?@AwayFromMyDesk:您遇到了什么样的错误?你是如何解析这个文件的?请注意,我在示例代码中使用了parseString()
,因为我在字符串值中包含XML。如果您有文件名,请使用.parse()
。我在第1925、942、223行的parseString()中发现了一系列内部错误。显然不是在我的剧本里。我把它放回刚才的parse()现在我只是得到一个错误:NameError:name'appendChild'未定义如何从另一个文件夹中获取文件?我不确定我是否了解您的意思。解析文件时使用不同的文件名?当我尝试此方法时,会出现一系列错误。我想这是因为我的xml文件不在运行脚本的活动文件夹中。我是否需要设置在另一个文件夹中查找xml文件的路径?@AwayFromMyDesk:您遇到了什么样的错误?你是如何解析这个文件的?请注意,我在示例代码中使用了parseString()
,因为我在字符串值中包含XML。如果您有文件名,请使用.parse()
。我在第1925、942、223行的parseString()中发现了一系列内部错误。显然不是在我的剧本里。我把它放回刚才的parse(),现在我得到一个错误:NameError:name'appendChild'没有定义