簡體   English   中英

如何在Java中驗證和解析UTF-16編碼的XML文件?

[英]How to validate and parse an UTF-16 encoded XML file in Java?

我正在使用UTF-16編碼的XML文件。 當我嘗試使用架構驗證來驗證此文件時,拋出以下異常:

org.xml.sax.SAXParseException: Content is not allowed in prolog.
    at    
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.
    createSAXParseException(Unknown Source)

我的代碼如下。

SchemaFactor schemaFactory = 
  SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
/** load a WXS schema, represented by a Schema instance */
Source schemaFile = new StreamSource(new File("Sample.xsd"));
try {
    Schema schema = schemaFactory.newSchema(schemaFile);
    javax.xml.validation.Validator validator = schema.newValidator();
    validator.validate(new StreamSource(new File("Testing.xml")));
    System.out.println("Validation Successs");
} catch (SAXException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

您的xml無效。 序言前有一些內容。 XML序言通常為<?xml version="1.0"?>修復您的xml。 代碼沒問題。

在序言錯誤中允許的內容是因為它期望的是UTF-8 ...我只能通過將編碼更改為UTF-8然后進行驗證來修復它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM