我有一个html文件,想要找到第二个TH内容为“Stn Code”和第三个TH内容为“Route No.”的表(在众多中)。什么是PHP中的XPATH表达式来获取这个特定的表:
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr class="heading_table_top">
<th width="6%">SNo</th>
<th width="9%">Stn Code</th>
<th width="17%">Stn Name</th>
<th width="9%">Route No.</th>
<th width="9%">Arrival Time</th>
<th width="9%">Dep. Time</th>
<th width="15%">Halt Time (In Minutes)</th>
<th width="9%">Distance</th>
<th width="6%">Day</th>
<th width="20%">Remark</th>
..................................
答案 0 :(得分:1)
这应该有效:
//table/tbody/tr[th[2]='Stn Code'][th[3]='Route No.']/../..
编辑:我的第一次尝试选择了tr元素,这应该选择表格。
答案 1 :(得分:1)
无论内容包含哪个th
,都会找到包含指定内容的表:
//table[descendant::th="Stn Code" and descendant::th="Route No."]
descendant axis包含上下文节点的后代;后代是孩子或孩子的孩子等等;因此后代轴永远不会包含属性或命名空间节点。
如果您想确保内容位于特定的th
元素中,请使用th[n]
,其中n
是其中的位置,例如对于“Stn Code”的第二个TH内容和“Route No.”的第3个TH内容。。您使用th[2]
和th[3]
。位置从1开始。
//table[descendant::th[2]="Stn Code" and descendant::th[3]="Route No."]
请注意,在您的示例标记“路线号”中在th[4]
中,因此上述XPath不会在结果节点中生成表。