2012-04-30 9 views
1

utf8とxmlファイルのテキストを解析するときに何度か問題が発生しました。それは先導的な "?"最初のデータを解析します。ここでリーディング "?" SAXでデータを解析するとき

<dictionary> 
    <word id="1" level="1" simp="爱" trad="愛"> 
    <pinyin>ai4</pinyin> 
    <part>verb</part> 
    <definition>to love</definition> 
    </word> 

はSAXです::ここで

はXMLである

@Override 
    public void startElement(String namespaceURI, String localName, 
       String qName, Attributes atts) throws SAXException { 
     if (localName.equals("word")) { 
      word = new Word(); 
      word.setId(atts.getValue("id")); 

、それは "?1" を引く最初のIDを引っ張るとだけではなく、 "1"、それはdoesnのポイント以上のデータのためにそれをしないでください。それはスロー例外がある:

4月30日21:42:42.240:E/AndroidRuntime(1418):java.lang.NumberFormatException: '?1' に起因整数として解析することができない

Iドン"〜を見ない?"物理的にXMLファイルを開くとどこから来るのですか?なぜそれが最初のことに影響を与えているのですか?

答えて

0

私はあなたのエンコーディングに問題があると思われます。入力ファイルに宣言がありますか

<?xml version="1.0" encoding="UTF-8" ?> 

エンコーディングをお持ちでない場合、何かが起こる可能性があります。

これらのファイルをすべてエンコードして作成しましたか?そうでなければ、いくつかのツールがエンコーディングを壊すかもしれないからです特にカットアンドペーストや特定のテキスト編集ツールを使用しています。

+0

私の問題を間接的に解決したようです。私の生成されたXMLファイルにはstandalone = "no"が含まれていました。私がそれを取り除くと、疑問符がついた。 – Josh

+0

それを含む理由に関するアイデアや知恵は、すべてを混乱させるでしょうか? – Josh

+0

あなたのフルファイルが何であるかをさらに表示することなく、私は助けません。私はあなたのファイルがDTDを参照していると推測しています。このDTDでは文字エンティティ(または他のエンティティ)があり、これらは解析中に解決されます。あなたがDTDを持っていると仮定すれば、それはあなたのものか他の場所の標準的なものかを知るのに役立ちます。 –

0

その前に何かありますか?疑問符ではないにもかかわらず、疑問符で置き換えられているサポートされていない文字かもしれません。

0

1は、NCName定義(http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName)に従ってXMLの有効な識別子ではない可能性があります。

NCName ::= (Letter | '_') (NCNameChar)*

関連する問題