SAXParseException XML文档结构必须在同一实体中开始和结束

时间:2017-04-02 13:34:32

标签: java xml saxparser validating

所以我知道使用这个API,我在服务器上生成的一些xml文件可能会生成错误或者没有关闭某些标签,或者结构不合理。 现在我的代码工作正常,但是对于某些文件,这些xml文件中的一些会抛出这些错误,下面是错误块

console.info(newData);

那么有没有办法处理这些文件而不使用SAX解析器API修复问题?

我正在考虑逐行处理这些文件,但这很痛苦。

还有一种方法类似于跳过dtd验证,如下所示

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)

谢谢:)

1 个答案:

答案 0 :(得分:0)

您无法使用符合要求的XML解析器来处理不符合(非)XML文档。

您可以使用不合格的解析器 - 例如HTML解析器 - 并且它可能提供SAX解析器API - 但是您是否可以找到一个解析器,它接受向您抛出的特定非XML类型的解析器,一个悬而未决的问题,因为您还没有为我们提供这种非XML语言的任何规范。

相关问题