0

タグの内容をJavaSaxパーサーの変数に取得しようとしています。ただし、CharactersメソッドはChar配列のみを返します。とにかくChar配列をIntに入れる方法はありますか?

public void character(char ch []、int start、int length){

  if(this.in_total_results) {
      // my INT varialble would be nice here!
  } 

}

誰か助けてもらえますか?

敬具、

アンディ

4

1 に答える 1

3

正確に言うと、タグごとに複数回呼び出される可能性があるため、文字で渡された値を累積する必要があります。

これは、テキストにエンティティがある場合に特に発生する可能性があります。(49,50,51は例示ですが、これらは1,2,3の正しいコードだと思います)のようなタグ<a>&#49;&#50;&#51;</a><a>123</a>

だからここにこの質問からの抜粋があります:

private StringBuffer curCharValue = new StringBuffer(1024);

@Override
public void startElement (String uri, String localName,
              String qName, Attributes attributes) throws SAXException {
    if(qName.equals("author")){
        curCharValue.clear();
    }
}

@Override
public void characters (char ch[], int start, int length) throws SAXException
{
     //already synchronized
    curCharValue.append(char, start, length);
}

@Override
public void endElement (String uri, String localName, String qName)
throws SAXException
{
    if(qName.equals("author")){
        String author = curCharValue.toString();
    }
}

StringBufferからintに変換するには、を使用しますnew Integer( curCharValue.toString() )。コメントで指摘されているように、またはに変換Stringする他の方法があることに注意してください。Integerint

于 2010-04-04T20:29:15.180 に答える