Boo*_*d16 0 python xpath lxml case case-insensitive
我正在使用python + lxml来解析spss文件。
这个主题上似乎有很多话题,但是答案并没有特别帮助我。
我遇到的答案:
- lower-case the entire input before parsing;
- if you know the complete list of tags in advance
Run Code Online (Sandbox Code Playgroud)
对我而言,这些建议将花费太多时间。
相反,我只想在必要时匹配字符串。
这是我要编辑的代码行:
xpath("//definition//variable[@name='"+tag_name+"']")
Run Code Online (Sandbox Code Playgroud)
如果tag_name是:
tag_name = "Q1top"
tag_name = "q1Top"
tag_name = "q1TOP"
etc
Run Code Online (Sandbox Code Playgroud)
我猜想某种形式的正则表达式会正常吗???
另外,您可以http://exslt.org/regular-expressions在XPath中从名称空间合并正则表达式,例如:
ns = {"re": "http://exslt.org/regular-expressions"}
query = "//definition//variable[re:test(@name, '^{0}$', 'i')]".format(tag_name)
result = tree.xpath(query, namespaces=ns)
Run Code Online (Sandbox Code Playgroud)