2012-03-22 4 views
0

とSAXExceptionの:私はこれらのような要素を持つXMLファイルを解析したいセミコロン

<element>&amp</element> 
<element>&amp;</element> 

しかし、SAXパーサは、解析時に私に次の例外を与えている:

org.xml.sax.SAXParseException: The reference to entity "amp" must end with the ';' delimiter. 
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:249) 
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284) 
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:208) 

はのための任意の既知の回避策はありますこの?私は(あなたの編集の前に)あなたが示してきたXMLでこれを再現することができないんだ

DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file); 
+1

「エスケープされたセミコロン」はどういう意味ですか?そしてあなたの*実際の* XMLですか?問題を示す短くて完全なプログラムと、サンプルのXMLファイルが本当に役に立ちます。 –

+0

私は間違いをしました。私は今、私の投稿を修正しました。 – adranale

+1

あなたの質問を書くときにはさらに注意してください。あなたの質問に間違って入力したときに問題を追いかけて人々を追いかけるのは迷惑です。 – skaffman

答えて

1

例外をスローするJavaコードはこれです。短いが完全なプログラム:のファイルで

import java.io.*; 
import javax.xml.parsers.DocumentBuilderFactory; 

public class Test { 
    public static void main(String[] args) throws Exception { 
     File file = new File("test.xml"); 
     DocumentBuilderFactory.newInstance() 
      .newDocumentBuilder() 
       .parse(file); 
    } 
} 

<element>&amp;</element> 

...それはエラーなしで実行されます。

<element>&amp</element> 

...それはあなたが報告された同じ例外を示しています。ファイルがちょうどある

私の結論は正しいとあなたのファイルです。ファイル内のすべての出現箇所を探し、セミコロンがない箇所を探します。

+0

あなたは正しいです。私のファイルに '&amp;' – adranale

+2

@adranale:それは無効なXMLです。修理する。そして次回は、パーサーがあなたに言っていることを信じてください:) –

関連する問題