Я нашел решение, которое появилось на другом форуме.
AnyNumber = driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")]')
buffer = 0
for AnyNumbers in AnyNumber:
if int(AnyNumbers) > buffer:
print('more than')
elif int(AnyNumbers) < buffer:
print('less than')
else:
print('is')
buffer = int(AnyNumbers)
Одно из простых решений вопроса OP является следующим выражением XPath:
*/*[.='bar']
Действительно обратите внимание на то, что никакая инструкция XSLT не включена - это - просто выражение XPath, таким образом, вопросом мог только быть отмеченный XPath.
Отсюда на, можно было использовать это выражение XPath в XSLT различными способами, например, для применения шаблонов на все выбранные узлы.
Например, ниже преобразование XSLT, которое берет XML-документ и производит другой, в который все элементы - дети <AA>
чьему содержанию не равно "bar"
удалены:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="AA">
<xsl:copy>
<xsl:apply-templates select="*[. = 'bar']"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Когда это преобразование применяется на исходный XML-документ:
<AA>
<BB>foo</BB>
<CC>bar</CC>
<DD>baz</DD>
<EE>bar</EE>
</AA>
к требуемому результату приводят:
<AA>
<CC>bar</CC>
<EE>bar</EE>
</AA>
Действительно отметьте:
В шаблоне соответствия мы обычно не должны указывать абсолютное выражение XPath, но просто относительное, таким образом, полное выражение XPath естественно упрощено до этого шаблона соответствия:
*[. = 'bar']