2

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

> 关键要求:

1) 像 text_content() 2) iterchildren 和 3) iterparent() 和 itersiblings() 之类的功能---(如果 xpath 在那里,我认为我们可以进行这样的遍历,不确定)。

Jsoup在那里很有名,但不确定是否一切都可以完成。我只想移植算法而不是大量重写。请建议。

谢谢。

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

4

2 回答 2

1

在我看来,撒克逊人是你最好的选择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])");
于 2013-04-24T18:48:59.073 回答
0

xerces is a great for xml. You would use xerces via JAXP.

于 2014-11-07T04:45:29.973 回答