我可以从以下
中隔离“首字母缩略词”子节点<tr id="PRO_0000155160">
<td>
<input type="checkbox" class="cart-item" onclick="addOrAppendCart('P19614_1-66_', 'section_features')" id="checkbox_P19614_1-66_" />
</td>
<td style="white-space:nowrap;">
<acronym title="Extent of a polypeptide chain in the mature protein." onclick="dialog('chain'); Event.stop(event || window.event); return false" onmousedown="Event.stop(event || window.event);">Chain</acronym>
</td>
<td class="numeric">
<a href="/blast/?about=P19614[1-66]">1 – 66</a>
</td>
<td class="numeric">66</td>
<td>Type-3 ice-structuring protein HPLC 12</td>
<td style="text-align:center" class="ft-sequence">
<table class="sequence" style="cursor:pointer" onclick="window.location.href='../blast/?about=P19614[1-66]'" title="Length: 66">
<tr>
<td style="width:100%;" class="feature chain"> </td>
</tr>
</table>
</td>
<td>
<span style="font-size: small;">PRO_0000155160</span>
</td>
</tr>
做:
//tr[contains(@id, '_')]//acronym[contains(@onclick,'chain')]
但是我想要返回它上面的“输入”节点(第3行)或它下面的“href”节点(第9行)。
通常情况下,我会写一个直接拉出输入或href节点的xpath查询,但是首字母缩写节点必须填写我的问题的某个标准 - 即在onclick属性中包含单词“chain”。 / p>
执行此操作可确保我拥有正确的“tr”根节点(主xml文件中有多个tr),但正如我所提到的 - 我需要该特定tr根节点的输入或href节点。
这可能吗?我已经尝试将../附加到查询的末尾,但这不起作用。
答案 0 :(得分:1)
&#34;上述&#34;误导了你。 &#34;前述&#34;会让你更接近。
详细说明您正在尝试做的事情。在所选的acronym
中,您需要最近的<input>
元素,因此请在路径末尾添加/preceding::input[1]
。 (需要[1]
,否则您将匹配文档中较早的所有<input>
元素。
同样,使用following::
轴在文档中稍后查看,没有结构约束。
(或者您可以更明确地确定所需节点相对于您找到的节点的确切位置,如果文档结构不像此处所示那么简单,那么这将更加健壮,并且可以提高性能。但是,您需要根据确切知道输入文档中的内容来设计这些内容。)