用于编辑xml标记中字符串的批处理脚本或python程序

用于编辑xml标记中字符串的批处理脚本或python程序,python,batch-file,xml,string,Python,Batch File,Xml,String,我希望编写一个程序,在xml文档中搜索标记,并将标记之间的字符串从localhost更改为manager。标记可能多次出现在xml文档中,并且文档确实有一个确定的路径。python或vbscript对这个问题最有意义吗?有人能提供一个模板让我开始吗?那太好了。谢谢。如果这是一件简单的事情,比如在这里或那里更改一些字符串,您可能可以使用python regexp完成所有操作,请检查此处: 对于更复杂的事情,我建议使用一些类似于靓汤的东西: 它有点过时,但是包含了你需要的一切 我同意这属

我希望编写一个程序,在xml文档中搜索标记,并将标记之间的字符串从localhost更改为manager。标记可能多次出现在xml文档中,并且文档确实有一个确定的路径。python或vbscript对这个问题最有意义吗?有人能提供一个模板让我开始吗?那太好了。谢谢。

如果这是一件简单的事情,比如在这里或那里更改一些字符串,您可能可以使用python regexp完成所有操作,请检查此处:

对于更复杂的事情,我建议使用一些类似于靓汤的东西:

它有点过时,但是包含了你需要的一切


我同意这属于stackoverflow.com,因为这是一个编程问题。

我建议您直接转到python的lxml库,不要回头看。xml的正则表达式操作可能会产生可怕的后果,而BeautifulSoup虽然非常流行,但已被正式放弃

lxml
功能强大、快速高效。对于您的任务,只需写下:

from lxml import etree
doc = etree.fromstring(content)
elements = doc.findall('tags_to_modify')
for el in elements:
    el.text = your_replacement_function(el.text)
print etree.tostring(doc)
您可以在lxml的文档中找到很多帮助:

我不会尝试使用任何没有合适解析器的语言来处理XML文档。将正则表达式用于xml/xhtml将非常有用。如果该语言有一个XML解析器(vbscript和python都有),那么只需选择您最喜欢的。不过,如果是简单的,我不会避免使用正则表达式——如果您需要,例如,将所有出现的
西班牙语
更改为
法语
或类似的内容,则这可能是一个不错的选择。但是,对于任何更复杂的事情,regex都肯定会让人头疼,然后再帮上忙。。。有句名言:有些人在遇到问题时会想“我知道,我会使用正则表达式。”现在他们有两个问题。--Jamie Zawinski,在comp.lang.emacs中是的,正则表达式是很有问题的,对我来说,主要是因为它们不可读——试着在一个月内阅读你自己的正则表达式——不太容易。每个人都应该试试pyparsing,它为我省去了很多麻烦。我不会投反对票,因为你的答案仍然很好,但BeautifulSoup并没有被放弃。BeautifulSoup是开源的,目前仍受支持。它依赖于Python3.0中不可用的解析器库(运行该库的用户相对较少)。将来,python 3.0版本的BeautifulSoup将允许插入式解析器。我指的是这篇文章:从中我得到的印象是,人们不会努力将其移植到python 3.0。抱歉疏忽了。没有疏忽,这篇文章必须仔细阅读,然后在事后进行调查,以了解完整情况。