我想解析一些xml與撒克遜做一些XPath查詢它,但得到了2個問題:第一個是,撒克遜是非常長的在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 =屬性但沒有更好的運氣:(
你有什麼想法嗎? 謝謝!
請結合這與您的其他「答案」。沒有理由有他們兩個。謝謝。 – 2014-11-17 14:08:48