1

ここで私が間違っていることは何ですか。

これはxmlファイルです

<text xml:space="preserve">{{Redirect|Anarchist|the fictional character|Anarchist (comics)}}
{{Redirect|Anarchists}}
{{Anarchism sidebar}}
{{Libertarianism sidebar}}
</text>

SAXパーサーを使用して解析しているとき、たとえばこれは私の文字メソッドです

public void characters (char ch[], int start, int length) throws SAXException{

    System.out.println(text);
    if (text){
        System.out.println(testData); //testData is StringBuilder
        if (testData != null){
            for (int j=start; j < (start + length); j++){
                testData.append(ch[j]);
            }
        }                           
    }
    text = false
}

これは私の startElement メソッドです

public void startElement(String uri, String localname, String qName, Attributes attributes) throws SAXException {
    if (qName.equalsIgnoreCase("text")) {
        text = true;
    }
}

しかし、私のキャラクター関数は一度だけ呼び出されます。何度か呼び出されると思ったので、

4

1 に答える 1

0

「空白を無視」フラグは、XML パーサーが XML 要素間の空白を意味があると見なすか、それとも無視するかを制御します。ignoreWhitespace が設定されていない限り、パーサーはすべての文字 (空白であろうとなかろうと) を characters() メソッドに供給するのに非常に正確です。

于 2012-04-14T06:17:52.100 に答える