python - 读取两个字符串之间的所有行
问题描述
我想从我的 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>
如何修改它以获取这两个“单词”之间的行
解决方案
简单的方法是添加一个变量,它告诉你是否在这些词之间:
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
推荐阅读
- javascript - 在 React 中删除 Firestore 的文档后,它应该从屏幕上消失。并在编辑文档时立即更新
- ruby-on-rails - Simple Form + Select2:无法输入动态标签
- laravel - 如何向与通常端口不同的 api 发出请求
- python - AttributeError:模块“tensorflow_federated.python.simulation”没有属性“HDF5ClientData”
- javascript - 如何在 React 中使用函数编辑字符串
- c# - 带有 nx monorepo 的 Azure Pipelines 警告
- java - Google reCaptcha 是否足以防止暴力攻击?
- windows - 测量按名称分组的 Windows 任务的执行时间
- asp.net - 将 CreateGUID 从 vb6 转换为 vb.net
- r - R:由于超时问题无法解析文件