首页 > 解决方案 > 读取两个字符串之间的所有行

问题描述

我想从我的 xml 之间的 xml 中提取行。这是一个例子:

<userData code="viPartListRailML" value="1">
            <partRailML s="0.0000000000000000e+00" id="0"/>
            <partRailML s="2.0000000000000000e+01" id="1"/>
            <partRailML s="9.4137883373059267e+01" id="2"/>
        </userData>

这是我正在尝试的代码:

import re

shakes = open("N:\SAJAT_MAPPAK\IGYULAVICS\/adhoc\pythonXMLread\probaxml\github_minta.xml", "r")
for x in shakes:
    if "userData" in x:
        print x
        continue
    if "/userData" in x:
        break

问题是它仍然只返回包含<userData</userData> 如何修改它以获取这两个“单词”之间的行

标签: pythonreadlines

解决方案


简单的方法是添加一个变量,它告诉你是否在这些词之间:

shakes = open("N:\SAJAT_MAPPAK\IGYULAVICS\/adhoc\pythonXMLread\probaxml\github_minta.xml", "r")
t=False
for x in shakes:
    if t:
        print(x) # also /userdata -line is printed
    if "/userData" in x:
        t=False
    elif "userData" in x: # this matches /userData as well--> elif
        t=True

推荐阅读