Xml 选择具有多个非嵌套特定子级的div

Xml 选择具有多个非嵌套特定子级的div,xml,xpath,Xml,Xpath,这将从第一个div中选择Some text 如何使用文本选择span,如何使用文本选择classclassName,如何从firstdiv选择我不知道的信息?比如: //div[contains(@class,'outer')]/descendant::span[contains(text(),'Some text')] 如果我理解正确,您希望获得类为'className'的span元素的文本,但必须使用示例中包含'Some text'或'Some different text'文本的span

这将从第一个
div
中选择
Some text

如何使用文本选择
span
,如何使用文本选择class
className
,如何从
first
div选择我不知道的
信息?比如:

//div[contains(@class,'outer')]/descendant::span[contains(text(),'Some text')]

如果我理解正确,您希望获得类为'className'的
span
元素的文本,但必须使用示例中包含'Some text'或'Some different text'文本的
span
元素进行搜索

要做到这一点,您可以使用
parent
following-sibling
构建xpath

此xpath获取类为“className”的第一个
span
元素的文本

//div[contains(@class,'outer')]/genderant::span[contains(text(),'Some text')]/parent::div/以下同级::div/span[contains(@class,'className')]


然后,只需将用于从“某些文本”搜索到“某些不同文本”的
span的文本替换为以下
轴和位置索引
[1]
(但可能更消耗资源):

//div[contains(@class,'outer')]/descendant::span[contains(text(),'Some text')]
//div[contains(@class,'outer')]/descendant::span[contains(text(),'Some text')] and /descendant::span[contains(@class,'className')]
//div[contains(@class,'outer')]//span[contains(text(),'Some text')]/following::span[1][@class='className']

//div[contains(@class,'outer')]//span[contains(text(),'Some different text')]/following::span[1][@class='className']