我正在尝试从RSS Feed中提取数据。 RSS链接 - http://www.thehindu.com/sport/?service=rss?
这是我的默认处理程序的字符方法。
public void characters(char[] ch, int start, int length) {
String text = "";
for (int i=0; i<length; i++)
text += ch[start+i];
}
当我尝试打印&#39;文字时对于描述标签,它是空的。 上面的代码是否有错误,或者导致问题的RSS数据格式是什么?
答案 0 :(得分:2)
可能会多次调用characters
方法,以便单个文本节点更好地使用以下内容:
private StringBuilder stringBuilder; // or Deque<StringBuilder> for nested elements
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
if ("...".equals(qName)) {
stringBuilder = new StringBuilder();
}
}
public void characters(char ch[], int start, int length) {
if (stringBuilder != null)
stringBuilder.append(ch, start, length);
}
public void endElement(String uri, String localName, String qName) {
if ("...".equals(qName)){
String s = stringBuilder.toString();
}
stringBuilder = null;
}
...
用于包含文本节点的元素的值。根据您的名称空间使用情况,您可能必须使用与localName
相关联的qName
答案 1 :(得分:0)
目前尚不清楚我们如何从RSS的SAX表示到达这里;或者,就此而言,您已经做了什么来验证您已获取URL,获取并解析了一些RSS。
但是这个方法似乎做了Java API在String构造函数中可以做的事情:http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#String%28char[],%20int,%20int%29