我目前正在解析一个xml文件,以找到一个模式,并从其中提取我需要的东西。
有没有一种方法,当我找到我正在寻找的行,数两行下来,并抓住这一行。
with open(filepath) as f:
for line in f:
if pattern.search(line):
#parse each line returned and return only the host names
result = re.findall('"([^"]*)"',line )
print(result)
示例性XML
<Computer3Properties name="UH25">
<Description property="Description">
<DescriptionValue value="lab" type="VTR" />
输出功率
UH25
所需输出
UH25
lab
现在我不能重新分析文件并查找模式,因为有许多
<DescriptionValue value=
因此,一旦找到主机名,我就必须获取它,然后逐行搜索值中的数据
1条答案
按热度按时间n3h0vuf21#
我创建了一个example.xml文件,其中包含您指定的确切示例内容:
此代码:
将打印在找到模式匹配的行的两行之后的任何一行。使用示例文件,你会得到“”。之所以要打印两行,是因为readline()方法将获取 next 行的内容。(正如我所做的)将打印从匹配行开始的第二行。您说您希望的输出是从此行开始专门打印“lab”。如果是这样的话,只需要稍微修改print()行:
现在,您的输出为: