Я пытаюсь проанализировать xml с помощью saxon, чтобы сделать запрос к xpath, но у меня возникли 2 проблемы: во-первых, saxon очень долго строит очень короткий документ в xhtml.
код такой:
Processor processorInstance = new Processor(false);
processorInstance.setConfigurationProperty(FeatureKeys.DTD_VALIDATION, false);
XPathCompiler XPathCompilerInstance = processorInstance.newXPathCompiler();
XPathCompilerInstance.setBackwardsCompatible(false);
String expressionTitre = "//div[@class='score_global']/preceding-sibling::img[1]";
XPathExecutable XPathExecutableInstance = XPathCompilerInstance.compile(expressionTitre);
XPathSelector selector = XPathExecutableInstance.load();
logger.info("Xpath compiled.");
// Phase 2, load xml document.
DocumentBuilder documentBuilderInstance = processorInstance.newDocumentBuilder();
documentBuilderInstance.setSchemaValidator(null);
documentBuilderInstance.setLineNumbering(false);
documentBuilderInstance.setRetainPSVI(false);
XdmNode context = documentBuilderInstance.build(new File("sample/sample.xml")); // This line takes ages to return.
Что я не понимаю, так это то, что если я делаю это с SAX, он загружается с нормальной скоростью :(.
Что я забыл предоставить в саксонии?
Java 1.6
Саксонская 9.1.0.8
Вторая проблема заключается в том, что он не может обработать символы с ударением, в то время как мой xml был такой:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
Итак, я удалил атрибуты xml: lang en lang =, но не повезло: (
У вас есть идеи?
Спасибо!