1
所以我知道使用這個API時,服務器上生成的一些xml文件可能會錯誤地生成,或者沒有關閉某些標記或嚴重結構化。 現在我的代碼工作正常,但對於某些文件,一些XML文件中把這些錯誤,下面是錯誤的塊SAXParseException XML文檔結構必須在同一個實體中開始和結束
org.xml.sax.SAXParseException; systemId: file:///E:/ARCHIVED_LOGS/BACKUP_LOG_190317_0000/trace_file.xml; lineNumber: 201; columnNumber: 105; XML document structures must start and end within the same entity.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.endEntity(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.endEntity(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.endEntity(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.peekChar(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
那麼,有沒有一種方法來處理這些文件,而無需使用它們固定問題SAX解析器API?
我正在考慮逐行處理這些文件,但這是一個痛苦。
也有類似跳過DTD驗證的方式看到下面
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(false);
factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
SAXParser saxParser = factory.newSAXParser();
謝謝:)
感謝您的回覆,我遇到的XML問題是它們是從以XML格式編寫日誌的實時服務器生成的;因此,這些文件在寫入過程中被採取或者在下載(複製)這些文件時發生重新啓動。結果其中一些結束了不正確的標籤關閉。 我正在考慮添加另一種處理方法(逐行讀取)以防發生寫入相同HashMap的異常 –