如何提取访问者满足某些条件的节点?

时间:2019-08-01 22:31:46

标签: xpath

如果我使用以下xpath,

//a[@itemprop="email"]/ancestor::li[@itemtype = "http://schema.org/Person"]/ancestor::div[@class="authors__list"]

我将提取它。但是我只对电子邮件中的li感兴趣。有没有一种方法可以测试a的祖先是lidiv的祖先,他们分别具有属性@itemtype = "http://schema.org/Person@class="authors__list"? (这样我就不会得到没有电子邮件的li。)谢谢。

<div class="authors__list" data-role="AuthorsList">
                                        <ul class="test-contributor-names">
                                            <li itemscope="" itemtype="http://schema.org/Person" class="u-mb-2 u-pt-4 u-pb-4"><span itemprop="name" class="authors__name">Yong&#160;Zhang</span><span class="author-information"><span class="authors__contact"><a href="mailto:zhangy@genomics.cn" title="zhangy@genomics.cn" itemprop="email" data-track="click" data-track-action="Email author" data-track-label=""><img src="/springerlink-static/images/svg/email.svg" height="24" width="24" alt="Email author"></a></span></span></li>
                                            <li itemscope="" itemtype="http://schema.org/Person" class="u-mb-2 u-pt-4 u-pb-4"><span itemprop="name" class="authors__name">Qiyuan&#160;Li</span></li>
                                            <li itemscope="" itemtype="http://schema.org/Person" class="u-mb-2 u-pt-4 u-pb-4"><span itemprop="name" class="authors__name">Xian&#160;Wang</span></li>
                                            <li itemscope="" itemtype="http://schema.org/Person" class="u-mb-2 u-pt-4 u-pb-4"><span itemprop="name" class="authors__name">Xiaolin&#160;Zhou</span></li>
                                        </ul>
                                    </div>

1 个答案:

答案 0 :(得分:0)

您可以尝试:

//a[ancestor::li[@itemtype='http://schema.org/Person']][ancestor::div[@class="authors__list"]]

适合您对ali祖先的div元素的描述,每个祖先都有指定的属性和属性值。