Python 正在为指定项目的修订标记读取xml文件
我有一个示例.xml文件,如下所示。我需要扫描项目“kernel/msm”的“revision”标记,然后 在“refs/heads”之后打印单词。下面有一个示例.xml文件和xml输出?我可以在稍后找出python部分,有人可以提供如何实现这一点的输入吗 输入:-Python 正在为指定项目的修订标记读取xml文件,python,Python,我有一个示例.xml文件,如下所示。我需要扫描项目“kernel/msm”的“revision”标记,然后 在“refs/heads”之后打印单词。下面有一个示例.xml文件和xml输出?我可以在稍后找出python部分,有人可以提供如何实现这一点的输入吗 输入:- Assume there is a variable project like below project='kernel/msm' sample.xml <?xml version="1.0" encoding
Assume there is a variable project like below
project='kernel/msm'
sample.xml
<?xml version="1.0" encoding="utf-8"?>
<project name="platform/vendor/google/proprietary/code"
path="vendor/widevine"
revision="refs/heads/ab_mr"
x-grease-customer="none"
x-quic-dist="none"
x-ship="none" />
<!-- test Projects -->
<project name="kernel/msm"
path="kernel"
revision="refs/heads/msm-3.4"
x-grease-customer="none"
x-quic-dist="la"
x-ship="oss" />
......
EXPECTED OUTPUT:-
msm-3.4
Sample code:-
project='kernel/msm'
#open xml file
with open('./test.xml', 'r') as f:
#get the branch and project
for line in project :
if line in 'revision':
branch = line.split('/')[-1]
print branch
假设存在如下可变项目
project='kernel/msm'
sample.xml
......
预期产出:-
msm-3.4
示例代码:-
project='kernel/msm'
#打开xml文件
将open('./test.xml',r')作为f:
#获取分支和项目
对于项目中的线路:
如果“修订”中的行:
分支=行。拆分('/')[-1]
印刷部
谢谢
例如,您必须使用根节点包装xml数据,否则将引发解析错误。能否附上一些您尝试使用的示例代码,并说明为什么这些代码不适用于您?这里没有太多内容。@legostrmtroopr-我使用xml专用模块更新了示例代码,如
xml.etree.ElementTree
@zhangyangyu-它是内置模块吗?你能建议如何使用它吗?是的。它是一个内置模块。提供了一些示例。@user2125827是否有一种方法可以将上述代码更改为使用变量project='kernel/msm'…我只想使上述代码成为各种项目的通用代码..没问题。我已经更新了答案以使用变量。@user2125827
import xml.etree.ElementTree as ET
import re
temp = 'refs/heads/'
name = 'kernel/msm'
pattern = re.compile('%s(.*)' % temp)
tree = ET.parse('sample.xml')
root = tree.getroot()
project = root.find("./project[@name='%s']" % name)
revision = project.get('revision')
res = pattern.match(revision)
print(res.group(1))