如何从 html 标签中提取 class 名字

How to extract class names from html tag

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

由于 xidel 文档真的很差。我不明白怎么办 使用函数 filter()contains() 并将 <span> 标签与 class 名称 "userstatus" 并提取第二个 class 名称。

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

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>`

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

结果如下所示:

class="用户状态离线 strongfont2"

class="userstatus online italicfont1"

您可以使用 jQuery.hasClass() 来确定 HTML 元素是否与特定的 class 关联 - hasClass Example

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

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

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

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

我以前从未使用过 Xidel,但上面的 XPath 在 Xidel online tester. You can also see demo of the above XPath in xpathtester.com

中测试时似乎有效