私はWeb-Harvestを使用してWebページの「スクレイピング」を行っています。整理する必要のある値の表があります。テーブルはとてもシンプルです。ただし、各列のデータ型を決定するには、テーブルの列見出しを使用する必要があります。テーブルはこんな感じ…。
<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>
Web-Harvestの例に示されているように、XQueryを使用しており、インデックスと属性(クラス、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]
各行について、対応する列見出しを見つけるために祖先(親?)が参照されているように見えます。それ以外は迷ってしまいました。追加情報があれば非常に役立ちます。
前もって感謝します。