我已经试了几个小时来选择某个元素,但似乎做不到。。。你知道吗
这是我的密码:
import lxml.etree as etree
import sys
import re
import os
doc = etree.parse(open("patches.plist"))
for app_dict in doc.xpath('/plist/dict/array/dict'):
for method_dict in app_dict.xpath('.//dict[key="overrides"]/array/dict'):
for return_dict in method_dict.xpath('.//dict[key="overrides"]/array/dict'):
returnValue = method_dict.xpath('//key[.="argument"]/following-sibling::string[1]/text()')[0]
print(returnValue)
这就是我试图选择元素/从中获取值的内容,我已经用// THIS VALUE IS WHAT I WANT
注释了我试图捕获的内容
链接: https://ghostbin.com/paste/68ffu
注意:有些进口可能不需要,但请忽略这一点。在.py的其他部分需要它们。你知道吗
这应该可以做到:
/plist/dict/array/dict[1]/array/dict/array/dict[1]/dict[1]/integer[2]
如果需要获取节点值,请在表达式末尾添加
/text()
。你知道吗谨致问候
这应该起作用:
我用predicate on value改变了位置,就像你的例子一样。我只用了一个表达,你可以根据需要把它分开。你知道吗
整个表达式:
/plist/dict/array/dict/array/dict[key="overrides"]/array/dict[key="argument"]/dict[key="subtype" and key="type"]/integer[preceding-sibling::key[text()="type"]]/text()
相关问题 更多 >
编程相关推荐