python用e替换xml内容的简单介绍

发布时间:2022-11-09

本文目录一览:

  1. python 怎么修改xml文件内容
  2. python 替换xml中的一行或者两行
  3. 求大神指教:如何用python读取xml文件中指定标签的文档内容并将其修改?最好写下详细代码,非常感谢哈!
  4. Python的XML节点替换或字符串替换问题,此为补偿贴,只限luotuo512来回答
  5. 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