Sax Parser字符数组到整数?

时间:2010-04-04 20:10:56

标签: java android sax saxparser

我试图在我的java Sax解析器中将标记的内容转换为变量。但是,Characters方法仅返回Char数组。无论如何将Char数组放入Int ???

  

public void characters(char ch [],int start,int   长度){

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

}

任何人都可以提供帮助吗?

亲切的问候,

安迪

1 个答案:

答案 0 :(得分:3)

要真正正确,您需要累积在字符中传递的值,因为每个标记可能会多次调用它。

如果文本中有实体,则会发生这种情况。像<a>&#49;&#50;&#51;</a>这样的标记相当于<a>123</a>(49,50,51是说明性的,但我认为这些是1,2,3的正确代码)

所以这是摘录自this question

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,如评论中所述。