匹配 TR 元素的 bgcolor 属性的 XPath 表达式

Posted

技术标签:

【中文标题】匹配 TR 元素的 bgcolor 属性的 XPath 表达式【英文标题】:XPath expression that matches the bgcolor attribute of a TR element 【发布时间】:2012-05-13 09:37:29 【问题描述】:

对没有nameid 生成的表行使用htmlAgilityPack。相反,我需要根据行的 bgcolor 属性中包含的值进行选择:

我了解 XPath 将返回 name 属性 = display 的所有行:

foreach(HtmlNode cell in doc.DocumentElement.SelectNodes("//tr[@name='display']/td")

给定下面的代码sn-p,当行的bgcolor ="#FFFFFF"> 时,什么表达式会选择所有元素?

我试过了:SelectNodes(//tr[@bgcolor='#FFFFFF']/td")

> <tr bgcolor="#EAF2FA">
>     <td colspan="2">
>         <font style="font-family: sans-serif; font-size:12px;"><strong>Name</strong></font>
>     </td> </tr> <tr bgcolor="#FFFFFF">
>     <td >&nbsp;</td>
>     <td>
>         <font style="font-family: sans-serif; font-size:12px;">Steve</font>
>     </td> </tr>

谢谢

【问题讨论】:

xpath 很适合我。我看不出它为什么不工作的理由。你能多显示一点代码吗? 我发现当我使用完整格式的 HTML 文档时,我的代码确实匹配。感谢您指出我的工作方向是正确的。 【参考方案1】:

bgcolor 很奇怪,我发现使用 contains 可以解决问题。

这会起作用的......

SelectNodes(//*//tr[contains(@bgcolor, 'FFFFFF')]/td")

【讨论】:

以上是关于匹配 TR 元素的 bgcolor 属性的 XPath 表达式的主要内容,如果未能解决你的问题,请参考以下文章

js中怎样设置动态tr的属性

table边框设置

通过 bgcolor 属性选择元素

前端学习02-01表格标签

jquery属性选择器(匹配具有指定属性的元素)

实训9.4.前端:表格tr,td,th,表格属性