gpt4 book ai didi

java - SAX 解析器返回空字符串

转载 作者:行者123 更新时间:2023-12-02 05:35:03 27 4
gpt4 key购买 nike

我正在尝试从 RSS 提要中提取数据。 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];

}

当我尝试打印描述标签的“文本”时,它是空的。上面的代码是否有错误,或者是 RSS 数据格式导致了问题?

最佳答案

对于单个文本节点,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)

关于java - SAX 解析器返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25065524/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com