2017-02-27 7 views
-1

XMLデータの一部としてUnicodeとLatin文字を含むXMLデータの解析に問題があります。 入力XMLデータを解析できないというエラーがスローされます。 添付のコードスニペットを見つけて、問題を解決するために必要な作業を行ってください。XMLReader.parse()を使用してラテン文字とユニコード文字を解析できません

これは、我々が

String url = "<?xml version='1.0' encoding='UTF-8'?><candidate-registrations customer-id='197'> 
<registration-details method=' '> 
<candidate-demographics> 
    <candidate-details> 
    <candidate-id-type value='SSN'/> 
    <candidate-id value='567876456'/> 
    <first-name value='ยง'/> 
    <last-name value='mohan'/> 
    <date-of-birth value='03/03/1980'/> 
    <email-address value='[email protected]'/> 
          <school-code>0129</school-code> 
    </candidate-details> 
      </candidate-demographics> 
      </registration-details></candidate-registrations>"; 

我々のアプリケーションでそれを渡している。これは、我々が

private XMLReader xr; 

public SaxMapper() 
{ 
    try 
    { 
     // Create the XML reader... 
     xr = XMLReaderFactory.createXMLReader();    
    } 
    catch(Exception e) 
    { 
     LoggerManager.Log(LogLevelConstants.INFO, className, "SaxMapper", e.getMessage(),e); 
    } 

}

public Object fromXML(String url) 
{ 
    try 
    { 
     return fromXML(new InputSource(url)); 
    } 
    catch (Exception e) 
    { 
     LoggerManager.Log(LogLevelConstants.INFO, className, "fromXML", e.getMessage(),e); 
     return null; 
    } 
} 
private synchronized Object fromXML(InputSource in) throws Exception 
{ 
     // Set the ContentHandler... 
     xr.setContentHandler(this); 

     // Parse the file... 
     xr.parse(in );      
     return getMappedObject(); 
} 

これは誤りであるを使用しているコードで入力され、私が得ているのは、

Error : <?xml version="1.0" encoding="UTF-8"?><import-results><result>BAD</result><reason-code>100</reason-code><reason-desc>Unable to parse the input XML</reason-desc><error>Unable to parse the input XML</error></import-results> 
+1

このエラーは含まれていません。コードでは、書式の改善が必要です。さらに、Javaでは複数行の文字列を使用できないため、XML文字列コードはコンパイルされません。 *そして*あなたのコードでは、非常に必要なクラスの宣言とスコープが省略されています。 – jpmc26

+0

私はjavaの文字列を読みやすくするために複数行をサポートしていないことを知っています。私は文字列をフォーマットしてここに投稿しました – GaneshBhagavath

+0

私はエラーを追加しました。 – GaneshBhagavath

答えて

0

あなたがdocumentation on InputSourceを読めば、あなたは

new InputSource(String) 

は、あなたがそれをすることを期待し、別の何かをすることがわかります。参照サックスで文字列を解析するために

https://docs.oracle.com/javase/tutorial/jaxp/sax/parsing.html

与えチュートリアルではなく、与えられた文字列を、ファイルの構文解析に焦点を当てていますのでご注意ください。しかし、あなたがそれを理解した後、それを変えるのは簡単だろう。

関連する問題