本文目录一览:
- python 怎么修改xml文件内容
- python 替换xml中的一行或者两行
- 求大神指教:如何用python读取xml文件中指定标签的文档内容并将其修改?最好写下详细代码,非常感谢哈!
- Python的XML节点替换或字符串替换问题,此为补偿贴,只限luotuo512来回答
- Python的XML节点替换或字符串替换问题
python 怎么修改xml文件内容
类似于:
#!/usr/bin/evn python
#coding:utf-8
try:
import xml.etree.cElementTree as ET
except ImportError:
import xml.etree.ElementTree as ET
import sys
try:
tree = ET.parse("country.xml") #打开xml文档
#root = ET.fromstring(country_string) #从字符串传递xml
root = tree.getroot() #获得root节点
except Exception, e:
print "Error:cannot parse file:country.xml."
sys.exit(1)
print root.tag, "---", root.attrib
for child in root:
print child.tag, "---", child.attrib
print "*" * 10
print root[0][1].text #通过下标访问
print root[0].tag, root[0].text
print "*" * 10
for country in root.findall('country'): #找到root节点下的所有country节点
rank = country.find('rank').text #子节点下节点rank的值
name = country.get('name') #子节点下属性name的值
print name, rank
#修改xml文件
for country in root.findall('country'):
rank = int(country.find('rank').text)
if rank > 50:
root.remove(country)
tree.write('output.xml')
给你推荐一篇文章看看吧:
python 替换xml中的一行或者两行
a = 'Range 0-229956 /Range'
b = "'Range 0-(A-1) /Range'\n'Range B-229956 /Range'"
d = open("a.xml", "w")
while 1:
line = d.readline()
if line == a:
replace(a, b)
if not line:
break
如果你的A,B两个值是从终端读取的话在开始read一下就行:
read A
read B
求大神指教:如何用python读取xml文件中指定标签的文档内容并将其修改?最好写下详细代码,非常感谢哈!
使用python自带的ElementTree模块,给你个例子你就知道了。
xml文档
<?xml version="1.0" encoding="utf-8"?>
<config>
<id>0</id>
<log_path>E:/Python/log_path</log_path>
</config>
Python 代码,修改id节的内容
from xml.etree import ElementTree
xml_file = 'config.xml'
xml = ElementTree.ElementTree(file=xml_file).getroot()
xml.find('id').text = '1'
Python的XML节点替换或字符串替换问题,此为补偿贴,只限luotuo512来回答
两种方法:
方法一
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()
结果:
roottext
a1a1for a/a1
a2a2for a/a2
a3a3for a/a3
root
方法二
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()
lz是好人。
Python的XML节点替换或字符串替换问题
fpr = open("text.txt")
data = fpr.read()
n = 0
for i in range(len(data)):
if data[i] == '/' and data[i+1] == '':
n += 1
newdata = data[0:i] + str(n) + 'a' + str(n) + 'fora/a' + str(n) + ''
k = i
break
for i in range(k+1, len(data)):
if data[i] == '/' and data[i+1] == '':
n += 1
newdata = newdata + data[i-2:i] + str(n) + 'a' + str(n) + 'fora/a' + str(n) + ''
newdata += 'root'
fpr.close()
fpw = open("newtext.txt", "w+")
fpw.write(newdata)
fpw.close()
测试数据: roottexta/a/a/root
输出结果: roottexta1a1fora/a1a2a2fora/a2a3a3fora/a3root