2017-01-03 16 views
0

次のJavaコードを使用してエスケープ文字を含むXMLファイルを解析しようとすると、エラーが発生します。ここでファイルを解析している間にそれを処理する方法はありますか?Javaを使用してエスケープ文字でXMLファイルを解析しようとするとエラーが発生する

private Document parseXmlFile(String fileName) { 
      Document doc = null; 
      try { 
       File fXmlFile = new File(fileName); 
       DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
       DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
       doc = dBuilder.parse(fXmlFile); 
       doc.getDocumentElement().normalize(); 
      } catch (ParserConfigurationException | SAXException | IOException ex) { 
       System.out.println(ex); 
      } 
      return doc; 

     } 

サンプルXML

<ResultDetail> 
     <ObjectType>APF</ObjectType> 
     <ObjectName>dlgCreateNewEmployee</ObjectName> 
     <Header>AccessModifiers Detected</Header> 
     <Description>&Original source: private</Description> 
</ResultDetail> 
+2

を使用することができます。テキストはCDATAブロックにラップする必要があります。あるいは、 ''& ''を '' & ''としてエンコードします。 – f1sh

+0

@ f1shこのような無効なXMLファイルを処理する方法はありますか? このシナリオでは、このような無効なXMLファイルは引き続き解析されます。 – wishman

+1

[よく整形されていないXMLデータ(HTML)を解析する必要があります]の重複の可能性があります(http://stackoverflow.com/questions/2560783/i-need-to-parse-non-well-formed-xml-data- html) – Joe

答えて

0
<ResultDetail> 
    <ObjectType>APF</ObjectType> 
    <ObjectName>dlgCreateNewEmployee</ObjectName> 
    <Header>AccessModifiers Detected</Header> 
    <Description>&#038;Original source: private</Description> 

代わりにあなたは無効なXMLでもCDATA

+0

...またはその他& –

関連する問題