有人可以帮助我如何从xml提取某些字符串并替换为另一个xml。就像我只想从1.XML的第二行中提取mediaId
- <sample_settings_config version="23" mediaId="0x6868">
并将其替换为2.xml文档(除了mediaId外,两个XML的代码都相同)。
由于1.xml位置是动态的(C:\ users \ xxxx \ Documents),所以我在寻找添加,查找提取和替换。 :(
我正在尝试使用Python或批处理脚本。
为此批处理脚本苦苦挣扎
setlocal EnableDelayedExpansion
(Set UPD=C:\Users)
(Set UDS=\RAP\Documents\MB)
For /F "delims=" %%a in ('findstr /I /L "mediaId" 1.xml') do (
set "line=%%a"
set "line=!line:*<string>=!"
for /F "delims=<" %%b in ("!line!") do echo %%b
但是它不起作用,感谢您的帮助。
答案 0 :(得分:0)
from xml.etree.ElementTree import ElementTree
tree = ElementTree()
tree.parse("1.xml")
root = tree.getroot()
media_id = root.find('sample_settings_config').attrib['mediaId']
tree.parse("2.xml")
root = tree.getroot()
root.find('sample_settings_config').attrib['mediaId'] = media_id
tree.write('2.xml', xml_declaration=True)
您可以使用xml.etree.ElementTree
阅读和
通过使用Python写入XML。
代码导入ElementTree
,实例是
创建为tree
。在tree
中,XML文件为
解析并获取root
。然后,找到标签
sample_settings_config
并获得
mediaId
的属性。
重复分析,获取root
并找到标签。
使用以下命令更新mediaId
的字典键:
值存储在变量media_id
中。
将修改后的内容写入XML文件。
1.xml :
<?xml version='1.0' encoding='us-ascii'?>
<root>
<sample_settings_config version="123" mediaId="0x6868">
"XML File 1"
</sample_settings_config>
</root>
2.xml :
<?xml version='1.0' encoding='us-ascii'?>
<root>
<sample_settings_config version="456" mediaId="0x0">
"XML File 2"
</sample_settings_config>
</root>
2.xml修改:
<?xml version='1.0' encoding='us-ascii'?>
<root>
<sample_settings_config mediaId="0x6868" version="456">
"XML File 2"
</sample_settings_config>
</root>