我正在尝试将标签的内容放入我的 java Sax 解析器中的变量中。但是,Characters 方法只返回 Char 数组。反正有没有把 Char 数组变成一个 Int ???
公共无效字符(char ch[],int start,int 长度){
if(this.in_total_results) { // my INT varialble would be nice here! }
}
任何人都可以提供帮助吗?
亲切的问候,
安迪
要真正正确,您需要累积在字符中传递的值,因为每个标签可能会多次调用它。
如果文本中有实体,则可能会发生这种情况。一个标签<a>123</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() )
. 请注意,正如评论中所指出的,还有其他方法可以从转换String
为Integer
or 。int