我一直在广泛使用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。