我正在使用 Web-Harvest 进行一些网页“抓取”。我有一个需要组织的值表。表非常简单。但是,我需要使用表的列标题来确定每列的数据类型。桌子看起来像这样......
<table>
<tr class="header">
<td>Name</td>
<td>Age</td>
<td>Gender</td>
</tr>
<tr>
<td>Bill</td>
<td>25</td>
<td>M</td>
</tr>
<tr>
<td>Emily</td>
<td>31</td>
<td>F</td>
</tr>
</table>
我正在使用 XQuery,如 Web-Harvest 示例中所示,并且我知道如何通过索引以及使用属性(类、id 等)获取值,但在这种情况下,我不确定如何确定第 1 列是名称,第 2 列是年龄,等等...我想以这种形式输出 XML...
<person>
<name>Bill</name>
<age>25</age>
<gender>M</gender>
</person>
<person>
<name>Emily</name>
<age>31</age>
<gender>F</gender>
</person>
我从另一篇文章中看到了这段代码片段,但我不确定它是如何工作的。
//tr[td[.="Jim"]]/td[count(ancestor::table/thead/tr/th[.="Credit"]/preceding-sibling::*)+1]
看起来每行都引用了祖先(父级?)来查找相应的列标题。除此之外,我迷路了。任何其他信息都会非常有帮助。
提前致谢。