My xml file looks like below :-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Messages xmlns="URL/sampleMessages-v1">
<Header>
<TransactionId>0</TransactionId>
<RequestNo>41194812</RequestNo>
<VNo>6789</VNo>
<Source></Source>
</Header>
...
...
</Messages>
我想读取它并更改RequestNo值
<RequestNo>41194812</RequestNo> to
<RequestNo>41194000</RequestNo>
I am using ElementTree module currently. I am using windows machine currently.
我想更新同一文件中的值
我已尝试以下代码:-
for elem in root:
for subelem in elem:
#print (subelem.tag)
if 'RequestNo' in subelem.tag :
#print (subelem.text)
subelem.text="41194813"
但我无法看到更改,或者我目前不知道如何在现有xml文件中写入这个新值subelem.text=“41194813”
for循环完成了这项工作:它确实正确地替换了文本。更改在
root
变量中。您可以通过在for循环后面添加以下行来验证:现在更新了XML,您需要将其写入一个文件:
其中
tree
是ElementTree.parse()
的结果。所以,把所有的东西放在一起:处理名称空间
XML文档包含名称空间,因此如果计划搜索标记,则需要在标记名称中包含名称空间。下面是一个处理名称空间的替代解决方案:
在上面的例子中,我刚刚给你的名称空间命名为“xxx”,它可以是任何“foo”、“bar”。。。但是应该在对
root.find()
的调用中用作前缀正在从输出文件中删除“ns0”
为了从输出文件中删除“ns0”,您需要在写入之前注册名称空间:
相关问题 更多 >
编程相关推荐