我有这样的XML:
<table>
<tr class="mergedrow">
<th scope="row"><a href="https://en.wikipedia.org/wiki/Telephone_numbers_in_Austria" title="Telephone numbers in Austria">Area code</a></th>
<td>07236</td>
</tr>
</table>
我正在尝试获取区号:07236。 我到目前为止所做的是匹配“&lt; a&gt;”节点: // * [text()=“区号”]
现在我需要获得祖先节点的兄弟节点&lt; th scope =“row”&gt;这是&lt; TD&GT;节点。 我选择直接匹配文本的原因是因为表格很大,数百行。
我试过// * [text()=“Area code”] /../ ancestor :: th至少匹配祖先 以及// * [text()=“Area code”] /../ follow :: td。它们都不起作用。
我是XPath的新手,所以如果答案显而易见,我会道歉。
答案 0 :(得分:0)
这个XPath,
//th[normalize-space() = 'Area code']/following-sibling::td/text()
将根据请求选择空格规范化字符串值为"07236"
的{{1}}之后td
元素的th
文本节点子节点。
答案 1 :(得分:0)
我找到了。我正在使用KNIME,这是一种数据分析工具,可以执行可以执行各种操作的节点。执行XPath节点时,我在上一条评论中写的命名空间存储在“dns”下。所以我的最终XPath表达式为:// dns:* [text()=“Area code”] /../ follow-sibling :: dns:td。