2024-09-29 17:20:07 发布
网友
<inboundContextData> <items> <item> <key>a</key> <value>One</value> </item> <item> <key>b</key> <value>Two</value> </item> <item> <key>c</key> <value>Three</value> </item> </items> </inboundContextData>
我必须使用python脚本将值1、2和3替换为其他数字。请建议需要做什么
为了操纵XML文档,可以使用BeautifulSoup包。示例:
BeautifulSoup
data = """ <inboundContextData> <items> <item> <key>a</key> <value>One</value> </item> <item> <key>b</key> <value>Two</value> </item> <item> <key>c</key> <value>Three</value> </item> </items>""" from bs4 import BeautifulSoup soup = BeautifulSoup(data, 'xml') my_new_value = 'XXX' for value in soup.select('items > item > value'): value.clear() value.append(my_new_value) print(soup.prettify())
输出:
<?xml version="1.0" encoding="utf-8"?> <inboundContextData> <items> <item> <key> a </key> <value> XXX </value> </item> <item> <key> b </key> <value> XXX </value> </item> <item> <key> c </key> <value> XXX </value> </item> </items> </inboundContextData>
使用ElementTree
ElementTree
演示:
import xml.etree.ElementTree et = xml.etree.ElementTree.parse(filename) root = et.getroot() for i in root.findall("item"): i.find("value").text = "NewNumber" et.write(filename)
<items> <item> <key>a</key> <value>NewNumber</value> </item> <item> <key>b</key> <value>NewNumber</value> </item> <item> <key>c</key> <value>NewNumber</value> </item> </items>
您可以使用ElementTree。有了它,您可以将xml加载到多维列表中,在那里您可以按层次结构访问元素。例如,从根开始,您可以将xml看作:
<inboundContextData> <- root <items> root <- 0 <item> root <- 0 <- 0 <key>a</key> <value>One</value> root <-0 <-0<-1 </item> <item> <key>b</key> <value>Two</value> </item> <item> <key>c</key> <value>Three</value> </item> </items>
因此,要更改第一个“值”,您可以这样做:
from xml.etree import ElementTree as ET xml = ET.parse('testfile.xml') root = xml.getroot() root[0][0][1].text = 'Five' xml.write('testfile.xml')
为了操纵XML文档,可以使用
BeautifulSoup
包。示例:输出:
使用
ElementTree
演示:
输出:
您可以使用
ElementTree
。有了它,您可以将xml加载到多维列表中,在那里您可以按层次结构访问元素。例如,从根开始,您可以将xml看作:因此,要更改第一个“值”,您可以这样做:
相关问题 更多 >
编程相关推荐