使用Xpath在特定节点之后选择特定节点

时间:2019-07-18 06:18:36

标签: xpath

我想使用XPath选择<space/>节点之后的<link>个节点。

输入:

<p>A.<space/>Olson,<c>1</c>
    <link>
        <context>
            <image/>
        </context><space/>
    </link><space/>W. M.<space/>Sischo,<c>1</c>
    <link>
        <context>
            <image/>
        </context><space/>
    </link><space/>A. C. B.<space/>Berge,<c>2</c>
    <link>
        <context>
            <image/>
        </context><space/>
    </link><space/>A.<space/>Adams-Progar,<c>3</c>
    <link>
        <context>
            <image/>
        </context><space/>
    </link>and<space/> D. A.<space/>Moore <space/><c>1</c> * 
    <link>
        <context>
            <image/>
        </context><space/>
    </link>
</p>

我想选择<space>节点之后的所有<link>节点。像这样有3个节点。 <space>节点之后还有另一个<link>节点。但是在and节点之前有<space>这样的文本。不应选择该节点。

尝试Xpath:

space[preceding-sibling::link]

在Xpath上方使用时,请选择所有<space>个节点。帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

遇到类似的情况后,我认为此表达式应该可以做到:

Class ScreenB extends Component {

    someAction = () => {
       this.props.navigation.navigate("ScreenA")
    }
}

答案 1 :(得分:0)

您可以使用以下XPath-1.0表达式

//space[preceding-sibling::node()[1] = preceding-sibling::link[1]]/following::text()[1]

其输出是:

W. M.
A. C. B.
A.