使用Python更改XML中的值 A. 一个 B 两个 C 三

使用Python更改XML中的值 A. 一个 B 两个 C 三,python,xml,Python,Xml,我必须使用python脚本将值1、2和3替换为其他数字。请建议操作XML文档需要做什么,您可以使用BeautifulSoup包。例如: <inboundContextData> <items> <item> <key>a</key> <value>One</value> </item> <item> <key&

我必须使用python脚本将值1、2和3替换为其他数字。请建议操作XML文档需要做什么,您可以使用
BeautifulSoup
包。例如:

<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>
data=”“”
A.
一个
B
两个
C
三
"""
从bs4导入BeautifulSoup
soup=BeautifulSoup(数据'xml')
我的新值='XXX'
用于汤中的值。选择('items>item>value'):
value.clear()
value.append(我的新值)
打印(soup.prettify())
输出:

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())

A.
XXX
B
XXX
C
XXX

使用
ElementTree

演示:

<?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>
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)
输出:

<?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>
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)

A.
新号码
B
新号码
C
新号码

您可以使用
元素树
。有了它,您可以将xml加载到一个多维列表中,从中可以按层次访问元素。例如,从根xml开始,您可以看到:

<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>
可能与此重复:问题被标记为“python”,但没有python代码。请花点时间研究这个问题。你肯定自己也试过吗?