在包含大量DIV的文档中,我想选择asset-body
元素中的文本,但仅限于该条目bookmark
内的asset-name entry-title
链接包含democrat
值中的文字href
。
因此,在下面的示例中,包含两个“条目”(entry-1
和entry-2
),我只想要显示 Jackpot!
的文字,因为该“条目”中bookmark
链接的值包含子字符串democrat
:
http://blahblah.com/politics-democrat
是否可以使用XPath执行此操作?
输入1:(失败:bookmark
该条目中的链接缺少子字符串democrat
)
<div id="entry-1" class="item-asset asset hentry">
<div class="asset-header">
<h2 class="asset-name entry-title">
<a rel="bookmark" href="http://blahblah.com/paper-scissors">Paper Scissors</a>
</h2>
</div>
<div class="asset-content entry-content">
<div class="asset-body">
<p>Paper and scissors</p>
</div>
</div>
</div>
ENTRY 2:该条目中的 PASS :bookmark
链接包含子字符串democrat
)
<div id="entry-2" class="item-asset asset hentry">
<div class="asset-header">
<h2 class="asset-name entry-title">
<a rel="bookmark" href="http://blahblah.com/politics-democrat">Pelosi Q&A</a>
</h2>
</div>
<div class="asset-content entry-content">
<div class="asset-body">
<p>Jackpot!</p>
</div>
</div>
</div>
答案 0 :(得分:3)
//div[contains(
div/h2[
contains(concat(' ',@class,' '),' asset-name ')
and
contains(concat(' ',@class,' '),' entry-title ')
]/a[@rel='bookmark']/@href
,'democrat')
]/div/div[
contains(concat(' ',@class,' '),' asset-body ')
]//text()
答案 1 :(得分:2)
使用强>:
//div[@class='item-asset asset hentry'
and .//a[contains(@href, 'democrat')]
]
/following-sibling::div[@class='asset-body']/p/text()
答案 2 :(得分:1)
在包含大文件的文件中 DIV的数量,我想选择
asset-body
元素内的文字, 但只有内部有bookmark
链接 那个asset-name entry-title
“条目”包含文本democrat
href
值。
//*[contains(concat(' ',@class,' '),
' hentry ')]
[.//*[contains(concat(' ',@class,' '),
' asset-name ')]
[contains(concat(' ',@class,' '),
' entry-title ')]
//a[@rel='bookmark']
[contains(@href,'democrat')]]
//*[contains(concat(' ',@class,' '),
' asset-body ')]