2017-08-12 18 views
0

我想从列表中获取li元素文本和链接。但问题在于,跨度有时也有不同类的名字,但总是有他们特色的词“显着的”,例如:Xpath语法根据上面的ID获取列出的元素包含单词

<span class="mw-headline" id="Notable_alumni">Notable alumni</span> 

OR

<span class="mw-headline" id="Notable_former_pupils">Notable former pupils</span> 

所以我需要使用“包含”不知何故,所以我沿着这些线:

//li[contains(span/@id,'Notable')]/span/@id/following-sibling::text() 

但不能得到这个权利。

另一个问题是这些文本块和标题不在同一个包含div。添加了一个图像来简化,你可以看到代码。

enter image description here

+0

这将是有益的,如果提供的例子是实际xHTML(不是屏幕截图),以及是否提供了所需输出的示例。 –

回答

0

假设与@id跨度总是下h2(如果不成立,你可以让使用*代替h2更通用)。如果锚定到含有元素,然后查找第一ul这是一个跟随的兄弟姐妹,你可以从它的所有的text()li元素:

//h2[span[contains(@id,'Movie Title')]]/following-sibling::ul[1]/li//text() 
+0

对不起,我按照代码添加了错误的示例和类'Movie title',这与此无关。跨度id包含单词“notable”。我仍然无法得到这个工作, –

+0

什么是期望的输出?目前还不清楚你试图选择哪个'text()'。 –

+0

“Max Beesley”和“Jiafeng Chen”以及其他任何出现在其下的li类文本(我们在此屏幕上只能看到2个) –

相关问题