Java のどの XML パーサーが (あるとしても) 解析する xml 要素のバイト オフセットを提供できるかを知りたいです。
私は Lucene を使用して XML ファイルのインデックスを作成しています。特定の単語を検索するときは、出力に XML Element 、ファイル名、およびバイト オフセットを含めて、そのオフセットをすばやく検索できるようにする必要があります。
Java のどの XML パーサーが (あるとしても) 解析する xml 要素のバイト オフセットを提供できるかを知りたいです。
私は Lucene を使用して XML ファイルのインデックスを作成しています。特定の単語を検索するときは、出力に XML Element 、ファイル名、およびバイト オフセットを含めて、そのオフセットをすばやく検索できるようにする必要があります。
VTD-XMLを見てください:http://vtd-xml.sourceforge.net、VTDNav.getContentFragment()
要素のオフセットと長さをエンコードします:javadoc。
オフセットをintにキャストすることで取得します(int) VTDNav.getContentFragment()
。
StAX (javax.xml.stream) を考えてみましょう。これは最初の例です。
XMLInputFactory f = XMLInputFactory.newInstance();
XMLStreamReader xr = f.createXMLStreamReader(new FileReader("test.xml"));
while (xr.hasNext()) {
int n = xr.next();
Location l = xr.getLocation();
switch (n) {
case XMLStreamReader.START_ELEMENT:
System.out.println(l.getColumnNumber());
System.out.println(l.getLineNumber());
... more
break;
}
}