gpt4 book ai didi

android XML 解析器不解析完整链接

转载 作者:行者123 更新时间:2023-11-30 04:13:57 26 4
gpt4 key购买 nike

所以,我一直致力于解析从互联网 (RSS) 获取的 XML 文件。

我一直在根据可以找到的 IBM 解析器工作 here .

不幸的是,当我尝试解析如下所示的链接时:

http://www.website.net/index.php?option=com_adsmanager&page=display&catid=87&tid=208196

但我的解析器仅将链接显示为:http://www.website.net/index.php?option= ,其余链接将被切断。

关于如何解决这个问题有什么想法吗?

编辑 1:

SaxParser 甚至根本无法工作。它声称(错误地)该文件格式不正确,但我知道它不是真的,因为它已经过检查和双重检查。

编辑 2:

NodeList 有多个子节点,每个与号 (&) 创建一个新节点。

因此,我的代码:

if (name.equalsIgnoreCase(LINK)) {
val = property.getFirstChild().getNodeValue();
message.setLink(val);
}

不太好。因此,我将其修复为这段代码:

if (name.equalsIgnoreCase(LINK)) {
val = "";
NodeList list = property.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
val += list.get(i).getNodeValue().toString();
}
message.setLink(val);
}

这是在 DOM XML 提要解析器中执行此操作的方法。现在我所要做的就是找到一种在与 IBM 示例不同的解析器中执行此操作的方法。

最佳答案

<link>http://www.website.net/index.php?option=com_adsmanager&page=display&catid‌​=87&tid=208196</link> 

...不是有效的 XML,因为 & 后面没有有效的 xml entities .

有几种方法可以解决这个问题:

转义&:

<link>http://www.website.net/index.php?option=com_adsmanager&amp;page=display&amp;catid‌​=87&amp;tid=208196</link> 

link 部分包装在 CDATA

<link><![CDATA[http://www.website.net/index.php?option=com_adsmanager&page=display&catid‌​=87&tid=208196]]></link> 

如果您无法控制 RSS 文件的创建,则必须在将文档提供给 XML 解析器之前对其进行预处理。移动宽容的 xml 解析器,如 TagSoup可能会有帮助。

关于android XML 解析器不解析完整链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10370276/

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