我想知道java中的哪个XML解析器(如果有的话)可以提供它解析的xml元素的字节偏移量。
我正在使用Lucene索引我的XML文件,当我搜索特定单词时,我需要输出包含XML元素,文件名以及字节偏移量,以便我可以快速查找该偏移量。
答案 0 :(得分:4)
查看VTD-XML:http://vtd-xml.sourceforge.net,VTDNav.getContentFragment()
对元素的偏移量和长度进行编码:javadoc。
通过将其转换为int (int) VTDNav.getContentFragment()
来获得偏移量。
答案 1 :(得分:0)
考虑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;
}
}