python - 如何在python代码中解析多个xml文件?
问题描述
嗨,我想在我的 python 代码中解析 2 个 xml 文件。并且想使用 config.xml 中的标签值替换 strings.xml 中的标签值。因为我是 python 新手,所以我没有任何线索。
这是我的代码:
**import os
import xml.etree.ElementTree as ET
root= ET.parse("C:/Users/Desktop/B-C-
Final/BuildConfig/Droid/Resources/values/Strings.xml")
search = root.findall(".//string/.[@name='app_name']")
print(search[0].text)
src= ET.parse("C:\\Users\\Desktop\\B-C-Final\\BuildConfig\\BuildConfig\\Config.xml")
appname = src.findall(".//string/.[@name='app_name']")
search[0].text = search[0].text.replace('search[0].text','appname[0].text')**
但我收到如下错误:
**Traceback (most recent call last):
File "c:/Users/Desktop/Pythoncode/hello.py", line 9, in <module>
src= ET.parse("C:\\Users\\Desktop\\B-C-Final\\BuildConfig\\BuildConfig\\Config.xml")
File "C:\Users\Desktop\Python\lib\xml\etree\ElementTree.py", line 1202, in parse
tree.parse(source, parser)
File "C:\Users\Desktop\Python\lib\xml\etree\ElementTree.py", line 595, in parse
self._root = parser._parse_whole(source)
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 11, column 16**
这是配置文件:
?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<appSettings>
<add key="K0" value="0" />
<add key="K1" value="1" />
<add key="K2" value="2" />
</appSettings>
<uses-sdk android:minSdkVersion="18" />
<application android:label="Build" android:icon = "@hello/icon">
</application>
<string name="app_name">abc</string>
</configuration>
解决方案
尝试这个。
from simplified_scrapy import SimplifiedDoc,req,utils
html = utils.getFileContent("config.xml")
doc = SimplifiedDoc(html)
app_name = doc.select('string@name=app_name').text
html1 = utils.getFileContent("Strings.xml")
doc1 = SimplifiedDoc(html1)
app_name1 = doc1.select('string@name=app_name')
app_name1.setContent(app_name)
print (app_name1.outerHtml)
utils.saveFile("Strings.xml",doc1.html)
结果:
<string name="app_name">abc</string>
这里有更多例子。https://github.com/yiyedata/simplified-scrapy-demo/blob/master/doc_examples
推荐阅读
- filtering - 在 Azure 数据工厂的复制活动中筛选 MongoDB 源数据集
- twilio - 如何使用 Twilio Flex Webchat UI 创建响应卡
- amazon-web-services - AWS Lambda 发布 - 错误 NU1605:检测到包降级
- python - Django Rest Framework 使用 value_list 序列化 fetchedn 的查询集
- javascript - JS应该动态生成元数据/整个页面吗?
- error-handling - 如果我的机器人没有权限,我希望它发送错误消息
- android - 将房间数据库的 AsyncTask 替换为 Rxjava
- java - 设置两个单独的图像视图的图像
- python - python中的SQL输出-如何将数据框中的所有元组转换为字符串
- c++ - 在 C++ 中重放函数调用