用标记解析Python文本文件

用标记解析Python文本文件,python,parsing,text,full-text-search,markup,Python,Parsing,Text,Full Text Search,Markup,我正在用python解析一个300页的文档,我需要在ThisVal元素之后找到Response元素的属性值。有多个点,响应元素用于不同的属性,因此在找到ThisVal元素后,我需要找出响应元素属性值中的内容 如果有帮助,标记对于ThisVal是唯一的,但在每个文档中都是不同的 11:44:49 <ThisVal Token="5" /> 11:44:49 <Response Token="5" Code="123123" elements="x.one,x.two,x.thre

我正在用python解析一个300页的文档,我需要在
ThisVal
元素之后找到
Response
元素的属性值。有多个点,
响应
元素用于
不同的属性
,因此在找到
ThisVal
元素后,我需要找出
响应
元素属性值中的内容

如果有帮助,标记对于
ThisVal
是唯一的,但在每个文档中都是不同的

11:44:49 <ThisVal Token="5" />
11:44:49 <Response Token="5" Code="123123" elements="x.one,x.two,x.three,x.four,x.five,x.six,x.seven" />
11:44:49
11:44:49 
您考虑过使用吗?我发现它对这类事情非常有用。下面是我试图解决你问题的方法

将pyparsing导入为pp
document=“””11:44:49
11:44:49 
"""
num=pp.Word(pp.nums)
冒号=:“
开始=pp.Suppress(“”)
等式=pp.Suppress(“=”)
tag_name=pp.Word(pp.alphas)(“tag_name”)
value=pp.QuotedString(“\”)
timestamp=pp.Suppress(num+colon+num+colon+num)
其他属性=pp.Group(pp.Word(pp.alphas)+eq+值)
标签=开始+标签名称+pp.ZeroOrMore(其他属性)(“属性”)+结束
标记行=时间戳+标记
thisval_found=False
对于文档中的行。拆分行():
结果=标记\行。解析字符串(行)
打印(“标记:{}\n属性:{}\n”.format(result.Tag\u name,result.attr))
如果找到thisval_并标记_name==“Response”:
对于result.attr中的属性:
如果[0]=“元素”:
打印(“找到:{}”。格式(a[1]))
thisval\u found=result.tag\u name==“thisval”

删除时间戳(例如使用
awk
)并尝试使用。谢谢,这很有帮助,但问题是在“thisval”之后找到它有100个响应标记,但我需要与特定元素匹配的标记,即“thisval”