Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 类名未知时如何获取元素?_C#_Xpath_Html Agility Pack - Fatal编程技术网

C# 类名未知时如何获取元素?

C# 类名未知时如何获取元素?,c#,xpath,html-agility-pack,C#,Xpath,Html Agility Pack,我有一个HTML文档,其中有一个表,其中包含可能有或可能没有类的行,例如: <tr class=""> <th>Name</th> <td class="row-text">Myname</td> </tr> 名称 我的名字 在上面的示例中,行没有类。但是,我需要获取列值(即,MyName)。此类行中唯一唯一的唯一值是header标记 有没有一种方法可以使用XPath按标题获取正确的行值?是的,您可以使用以下方

我有一个HTML文档,其中有一个表,其中包含可能有或可能没有类的行,例如:

<tr class="">
  <th>Name</th>
  <td class="row-text">Myname</td>
</tr>

名称
我的名字
在上面的示例中,行没有类。但是,我需要获取列值(即,
MyName
)。此类行中唯一唯一的唯一值是header标记


有没有一种方法可以使用XPath按标题获取正确的行值?

是的,您可以使用以下方法:

或者,通过
tr
父元素:

//tr[th = 'Name']/td

@答案是正确的。我想补充其他类似的备选方案:

这一个查找所有
tr
,其中
th
包含
'Name'
作为子字符串(如果有多个元素的内容中包含文本'Name',它们也将被选中);并在
tr

//tr[contains(th, 'Name')]/td
另一个类似,但只为您提供具有精确匹配的元素,并且还负责规范化空白,这很有用,因为有时找不到精确匹配,因为文本前可能有空格或换行符阻止精确匹配。它发现
th
移动到父级(
),最后移动到
td

//th[normalize-space(text()) = 'Name']/../td

请记住,您可以在Chrome和Firefox控制台中使用
$x(“some/xpath”)
函数来检查xpath;类似于css选择器的
$(“一些css”)

XPath可以像JavaScript中的JQuery那样利用css选择器吗?@Matt Yes,类似于
“/*[包含(@class,'my_css_class')]”的东西。
//th[normalize-space(text()) = 'Name']/../td