如果我使用以下xpath,
//a[@itemprop="email"]/ancestor::li[@itemtype = "http://schema.org/Person"]/ancestor::div[@class="authors__list"]
我将提取它。但是我只对电子邮件中的li感兴趣。有没有一种方法可以测试a
的祖先是li
和div
的祖先,他们分别具有属性@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 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 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 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 Zhou</span></li>
</ul>
</div>
答案 0 :(得分:0)
您可以尝试:
//a[ancestor::li[@itemtype='http://schema.org/Person']][ancestor::div[@class="authors__list"]]
适合您对a
和li
祖先的div
元素的描述,每个祖先都有指定的属性和属性值。