4

我想知道 java 中的哪个 XML 解析器(如果有的话)可以为我提供它解析的 xml 元素的字节偏移量。

我正在使用 Lucene 来索引我的 XML 文件,当我搜索特定单词时,我需要输出包含 XML Element 、文件名以及字节偏移量,以便我可以快速找到该偏移量。

4

2 回答 2

4

看看 VTD-XML: http: //vtd-xml.sourceforge.net,它VTDNav.getContentFragment()编码了元素的偏移量和长度:javadoc

您可以通过将其转换为 int 来获得偏移量(int) VTDNav.getContentFragment()

于 2012-11-24T18:10:24.260 回答
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;
        }
    }
于 2012-11-24T18:20:19.043 回答