获取xml元素的字节/字符偏移量

时间:2012-11-24 17:57:32

标签: java xml xml-parsing lucene

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

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

2 个答案:

答案 0 :(得分:4)

查看VTD-XML:http://vtd-xml.sourceforge.netVTDNav.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;
        }
    }