1

我正在尝试从<span>标签中提取第二类名称。

由于 xidel 文档真的很差。我不明白如何使用函数filter()或将标签与类名“userstatus”contains() 匹配<span>并提取第二个类名。

我现在有这个,但是当一个参数包含单词 userstatus 时,我无法告诉 XIDEL 工具将跨度标签与类匹配。

xidel -e http://intranet.website.com '//li[@class='status']/span[@class==match("userstatus").....

感谢您的任何建议

<li class="status">
  <span class="userstatus offline strongfont2">
    blaa bllaa foo text
  </span>
</li>

<li class="status">
  <span class="userstatus online italicfont1">
    blaa bllaa foo text
  </span>
</li>`

我需要提取标签的类参数。 我不需要标签的文本或 HTML 内容。<span>
<span>

结果如下所示:

class="用户状态离线strongfont2 "

class="用户状态在线斜体1 "

4

2 回答 2

1

如果要查找属性值包含<span>的元素,然后返回,可以使用以下 XPath 1.0 表达式:class"userstatus"class

//li[@class='status']/span[contains(@class, 'userstatus')]/@class

由于 Xidel 似乎支持 XPath 2.0,您可以使用以下表达式从上述<span>元素中仅提取第二个 CSS 类:

for $span in //li[@class='status']/span[contains(@class, 'userstatus')] 
return tokenize($span, ' ')[2]

我以前从未使用过 Xidel,但上面的 XPath 在 Xidel online tester中测试时似乎可以工作。您还可以在xpathtester.com中查看上述 XPath 的演示

于 2016-01-04T09:24:30.940 回答
0

您可以使用 jQuery.hasClass() 来确定 HTML 元素是否具有关联的特定类 - hasClass 示例

于 2016-01-04T09:02:41.047 回答