Java中的lxml替代品



我一直在广泛使用lxml来开发算法。但是现在,由于性能问题,我不得不迁移到Java。寓意是,我能在Java中找到像lxml dom解析器一样棒的东西吗?

>关键要求:

1) text_content()2)孩子和3) iterparent()和itersiblings()——如果有xpath,我想我们可以做这样的遍历,不确定)。

汤在那里很有名,但不确定是否能做到这一切。我只是想移植算法,不需要大量的重写。请建议。

谢谢。

为什么使用Java:我正在做复杂的nlp和dom解析任务。Python是第一选择,并将继续如此。编写c扩展是一回事,执行复杂的nlp任务是另一回事,合并两者又是另一回事。因此,Java。没有进攻。

Saxon在我看来是最好的选择http://saxon.sourceforge.net。在此下载的saxon-resources9-4.zip中可以找到大量示例:http://sourceforge.net/projects/saxon/files/Saxon-HE/9.4/类似xpath表达式:

    XPathExpression findLine =
        xpe.compile("//LINE[contains(., $word)]");
    XPathExpression findLocation =
        xpe.compile("concat(ancestor::ACT/TITLE, ' ', ancestor::SCENE/TITLE)");
    XPathExpression findSpeaker =
        xpe.compile("string(ancestor::SPEECH/SPEAKER[1])");

xerces是xml的好工具。您可以通过JAXP使用xerces。

最新更新