0

我正在尝试将标签的内容放入我的 java Sax 解析器中的变量中。但是,Characters 方法只返回 Char 数组。反正有没有把 Char 数组变成一个 Int ???

公共无效字符(char ch[],int start,int 长度){

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

}

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

亲切的问候,

安迪

4

1 回答 1

3

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

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

所以这里是从这个问题中摘录的:

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();
    }
}

要将 from 转换StringBuffer为 int,只需使用new Integer( curCharValue.toString() ). 请注意,正如评论中所指出的,还有其他方法可以从转换StringIntegeror 。int

于 2010-04-04T20:29:15.180 回答