gpt4 book ai didi

java - SAX 解析器返回标题的第一个字符

转载 作者:行者123 更新时间:2023-11-30 11:48:48 24 4
gpt4 key购买 nike

我正在构建一个使用 SAX 解析器解析 RSS 提要的 Android 应用程序。当我打印标题时,我只得到它的第一个字符。

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

String theString = new String(ch,start,length);
//Log.i("RSSReader","characters[" + theString + "]");

switch (currentstate)
{
case RSS_TITLE:
_item.setTitle(theString);
Log.i("tag","Length:"+length);
currentstate = 0;
break;
}
}

在这里,日志显示长度始终为 1。这甚至发生在描述中。在它使用另一个提要之前,现在当我切换到另一个提要时遇到了麻烦。这是示例标题标签:

<title>&quot;The Color of the Night is not always Black II_(Explored Highest Position #1)&quot; by xris74</title>

我在屏幕上打印的是“即(引用)

提前致谢!

编辑 1:我添加了字符串生成器。

1. Added new string builder variable:
StringBuilder newString;
2. On Element Start, if its title
newString = new StringBuilder();
3. On Element End, if its title
_item.setTitle(newString.toString());
4. In characters function, if its title tag, than:
newString.append(ch,start,length);

最佳答案

characters() 函数可以在开始标签之后和结束标签之前被多次调用。每次它为您带来一些字节,但不一定在一次调用中一次带来所有字节。

因此您可以在onStartTag 函数中创建一个StringBuilder。然后在每次输入字符函数时附加到该 StringBuilder。然后,当您为此标签输入 onEndTag 函数时,您的 StringBuilder 将包含所有字符。附加的内容由 characters 函数的 offsetlength 参数决定

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

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