1

utf8 および xml ファイルのテキストを解析するときに、何度か問題に遭遇しました。先頭に「?」を配置しています。私が解析する最初のデータについて。

XML は次のとおりです。

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

SAX は次のとおりです。

@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"));

最初の ID を取得すると、単に「1」ではなく「?1」が取得されますが、ポイント以降のデータについては行われません。スローされる例外は次のとおりです。

04-30 21:42:42.240: E/AndroidRuntime(1418): 原因: java.lang.NumberFormatException: '?1' を整数として解析できません

「?」が表示されない XML ファイルを物理的に開いたとき、それはどこから来ているのでしょうか? なぜそれは最初のものだけに影響を与えるのですか?

4

3 に答える 3

0

おそらく問題は、1NCName の定義 (http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName) によると、XML の有効な識別子ではないことです。

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

于 2012-04-30T14:14:49.307 に答える
0

その前に何かありますか?疑問符でなくても、サポートされていない文字が疑問符に置き換えられている可能性があります

于 2012-04-30T14:08:11.757 に答える
0

私の推測では、エンコードに問題があると思います。入力ファイルに宣言がありますか

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

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

これらのファイルすべてにエンコードを設定して作成しましたか? そうしないと、一部のツールでエンコーディングが破損する可能性があるためです。特にカットアンドペーストまたは特定のテキスト編集ツール。

于 2012-04-30T14:08:36.543 に答える