我怎样才能缩短以下内容?
$contactsBlock
是一个HTMLAgilityPack节点,XPath:/html[1]/body[1]/div[3]/div[2]/div[2]/div[1]/div[1]/div[2]/div[1]/div[3]/div[5]/div[1]/div[2]
$contactsBlock.SelectSingleNode(".//table").SelectSingleNode(".//table")
所需XPath中的结果:/html[1]/body[1]/div[3]/div[2]/div[2]/div[1]/div[1]/div[2]/div[1]/div[3]/div[5]/div[1]/div[2]/table[1]/tr[2]/td[1]/div[1]/div[2]/table[1]
第二个表嵌套在第一个表中,我想将上面的SelectSingleNode
缩短两次到这样的
$contactsBlock.SelectSingleNode(".//table/*/table")
并跳过中间人。
有没有办法像这样的外卡?
答案 0 :(得分:1)
XPath表达式.//table//table
应匹配当前节点下其他表中嵌套的所有表。双正斜杠匹配任意长度的路径。
.//table/*/table
不太可能给你一个匹配,因为星号通配符匹配一个节点(即一个层次结构),所以嵌套表必须是第一个表的孙子节点:
<table>
<tr>
<table>...</table> <!-- nested table would have to go here -->
</tr>
</table>
这很不寻常。与您的问题中的XPath表达式建议的结构不匹配。