python动态修改xml文件一次性写出的方法
有个需求:
存在一个xml文件,每次要对某些子节点或者属性值进行修改
想要实现一个脚本
xml_op.py "a|xpath of element|newvalue"
三部分,第一部分 a m d 为操作类型
第二部分为xpath解析
第三部分为新增或替换的新值
问题:
有什么方法,可以读入一个dom树在内存里,然后可以根据xpath进行动态修改,最后一步写出到一个新的xml文件?
博文链接,简单实现等都可以啊
Thx!
[解决办法]
beautifulSoup行不?
http://www.crummy.com/software/BeautifulSoup/bs4/doc/
[解决办法]
用libxml2最简单的例子
import libxml2 as xmldef xpathrpl(doc,xpath,newval): ctxt = doc.xpathNewContext() res = ctxt.xpathEval(xpath) for x in res: x.setProp('attr',newval) ctxt.xpathFreeContext()if __name__ == '__main__': str=''' <root> <item attr="0"/> <item attr="1"/> <item attr="2"/> </root> ''' doc = xml.parseDoc(str) xpathrpl(doc,'//item[@attr]','3') print doc doc.freeDoc()
[解决办法]
支持xpath的xml库都可以。