よく整形されたxhtml文書を解析しようとしています。
ノードの繰り返し中に問題が発生しています。
私のXHTMLは、私は必要な情報が列(TD)に含まれているJavaとxpath - xHtml解析の問題
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>...</head>
<body>
...
<form>
...
<div class="AB"> (1 or 2 times)
...
<div class="CD">
...
<table>
<tbody>
<tr> (1 to N times)
<td> XXX </td>
<td> YYY </td> ...
のような構造を有しています。
N個のオブジェクトを構築したいと思います。したがって、すべての行(tr)には、オブジェクトを構築するために必要な情報が列に含まれています。
私はclass = "AB"のdivを1つまたは2つ持っています。だから、基本的に私は1または2の物体ABはテーブル
のすべての行から作成された他のオブジェクトのリストを含む必要がありますので、最初に私は、これらのABのdiv
NodeList ABlist= (NodeList) xpath.evaluate("//div[@class='AB']", document, XPathConstants.NODESET)
ののNodeListを抽出今私がしようとしています最初のdivのすべてのtr elemsのNodeListを取得します。
NodeList trList = (NodeList) xpath.evaluate("/div/table//tr", ABlist.item(0), XPathConstants.NODESET);
この場合、trListは空です。私のコードに何が間違っているか知っていますか?
ありがとう
あなたはパウエルです!私は(第2引数として)evaluate()メソッドに 'コンテキスト'を渡していると思いました。私はここに投稿する前/しないで試したと思うが、その間に他のものを変更したかもしれないが、その時にはうまくいきませんでした。とにかくそれは今働いている。あなたの助けをありがとう! – mickthompson
そこにコンテキストを渡します。問題は、クエリーで先行する '/'を使用することによって、コンテキストノードからではなく、ノードが属するドキュメントの_root_からパスを開始するように指示することです。 –