有没有办法在 Python 中分解长的 xpath 行?
Is there a way to break up long xpath lines in Python?
我一直在将我的 Perl 脚本中的一些 XPath 转换为 Python。一切正常,但 Pylint 抱怨线路太长。在 Perl 中,我使用 white space 通过分解长行使 XPath 更具可读性。
Perl 示例:
my $node_list = $device->findnodes(
"./templateObjects
/TemplateObject[fieldName/text() = 'SCADAArea']
/keyPairs
/TemplateKeyValuePair[TemplateName/text() = '%AREA%']
/TemplateValue");
在Python中:
node_list = device.xpath( "templateObjects/TemplateObject[fieldName/text() = 'SCADAArea']/keyPairs/TemplateKeyValuePair[TemplateName/text() = '%AREA%']/TemplateValue")
Python有没有更好的方法?我尝试了三重引号,但它不接受那样的 XPath。
如评论中所述,只需使用单独的字符串...
node_list = device.xpath("templateObjects/TemplateObject[fieldName/text() = 'SCADAArea']/keyPairs/"
"TemplateKeyValuePair[TemplateName/text() = '%AREA%']/TemplateValue")
或
node_list = device.xpath("templateObjects"
"/TemplateObject[fieldName/text() = 'SCADAArea']"
"/keyPairs"
"/TemplateKeyValuePair[TemplateName/text() = '%AREA%']"
"/TemplateValue")
我一直在将我的 Perl 脚本中的一些 XPath 转换为 Python。一切正常,但 Pylint 抱怨线路太长。在 Perl 中,我使用 white space 通过分解长行使 XPath 更具可读性。
Perl 示例:
my $node_list = $device->findnodes(
"./templateObjects
/TemplateObject[fieldName/text() = 'SCADAArea']
/keyPairs
/TemplateKeyValuePair[TemplateName/text() = '%AREA%']
/TemplateValue");
在Python中:
node_list = device.xpath( "templateObjects/TemplateObject[fieldName/text() = 'SCADAArea']/keyPairs/TemplateKeyValuePair[TemplateName/text() = '%AREA%']/TemplateValue")
Python有没有更好的方法?我尝试了三重引号,但它不接受那样的 XPath。
如评论中所述,只需使用单独的字符串...
node_list = device.xpath("templateObjects/TemplateObject[fieldName/text() = 'SCADAArea']/keyPairs/"
"TemplateKeyValuePair[TemplateName/text() = '%AREA%']/TemplateValue")
或
node_list = device.xpath("templateObjects"
"/TemplateObject[fieldName/text() = 'SCADAArea']"
"/keyPairs"
"/TemplateKeyValuePair[TemplateName/text() = '%AREA%']"
"/TemplateValue")