在百度知道里面有人问了这么一个问题:

有一个xml文件:
<root>text
<a/>
<a/>
...这里省略n个<a/> <root>
想替换成下面的形式:
<root>text
<a1>a1 for a</a1>
<a2>a2 for a</a2>
...n个<an>...</an> <root>
请问,应该怎么替换呢?用字符串替换或lxml包的方法都可以。谢谢!

我给出了两种答案,一种是用字符串替换,一种是xml解析。如下

字符串替换:

 old=open("test.xml")
lines=old.readlines()
a="<a/>"
i=1
newlines=[]
for line in lines:
if a in line:
line=line.replace(a,"<a"+str(i)+">a"+str(i)+"for a</a"+str(i)+">")
i=i+1
newlines.append(line) for line in newlines:
print line new=open("newtest.xml","w")
new.writelines(newlines)
new.close()
old.close()

  xml解析:

 import xml.dom.minidom
oldxmlfile=open("test.xml")
oldxml=oldxmlfile.read()
oldxmlfile.close()
doc = xml.dom.minidom.parseString(oldxml)
index=1
for node in doc.getElementsByTagName("a"):
node.tagName="a"+str(index)
index=index+1
newxml=doc.toprettyxml()
xmlfile=open("newxml2.xml","w")
xmlfile.write(newxml);
xmlfile.close()

最新文章

  1. 【javaweb学习】XML和约束模式
  2. ASP.NET ZERO 学习 HangFire的使用二
  3. Hbase安装配置(靠谱亲测)
  4. POJ 2559 Largest Rectangle in a Histogram(单调栈)
  5. 歐洲國家拓展其移動和IT服務業務
  6. HDU 2089 不要62
  7. [Matlab] Galois Field
  8. Android百度地图开发05之公交信息检索 + 路线规划
  9. LinkButton(按钮)
  10. sgu - 269 - Rooks
  11. 致改变——总结&amp;规划(2016&#183;一)
  12. 笔记本开了WIFI之后只能上QQ,上不了网页的解决方法
  13. Jsensation | 氪加
  14. LINQ 基本子句之一 (select/where/group/into)
  15. OpenShift实战(一):OpenShift高级安装
  16. SQL Server 远程更新目标表数据
  17. Maven学习(七)-- 使用Maven构建多模块项目
  18. GenericServlet
  19. MVC 纯Table实现树节点效果+授权
  20. Spring + Mybatis 读写分离

热门文章

  1. the swap trick用于锐减过剩容量
  2. c++ string.c_str()小结
  3. springboot整合activemq(二),消费均匀分析
  4. svg path 路径
  5. js-带操作的赋值表达式
  6. HDU 3652 区间有13并且这样整除13 的数量(数位DP)
  7. CF 520 B. Two Buttons(bfs)
  8. my04_Mysql复制数据一致性校验
  9. my.梦幻手游_XP
  10. C# 通过 Hessian服务调用java