在 Android 中解析 XML 时 URL 中的 & 符号

发布于 2025-01-07 19:34:18 字数 1132 浏览 0 评论 0原文

我有一个问题。我解析 XML。该 XML 中有一个 URL,看起来像这样:

<link>http://basa.med-info.ru/xse/index.php?query=грипп&amp;cluster=9025</link>

当使用此代码解析此链接时:

NodeList linkList = drugElement.getElementsByTagName("link");
            Element linkElement = (Element)linkList.item(0);
            NodeList textLinkList = linkElement.getChildNodes();
            link = textLinkList.item(0).getNodeValue().trim();
            Log.i(TAG, "link: "+link);

结果是这样的:

link: http://basa.med-info.ru/xse/index.php?query=грипп

因此,由于某种原因,URL 的其余部分丢失了: &cluster=9025 怎么解决呢?

更新真实代码是这样的:

NodeList linkList = drugElement.getElementsByTagName("link");
            Element linkElement = (Element)linkList.item(0);
            NodeList textLinkList = linkElement.getChildNodes();
            link = "";
            for (int j = 0; j < textLinkList.getLength(); j++)
            {
                    link += textLinkList.item(j).getNodeValue();
            }
            Log.i(TAG, "link: "+link);

I have a problem. I parse XML. There is URL in that XML, that looks like this:

<link>http://basa.med-info.ru/xse/index.php?query=грипп&cluster=9025</link>

When this link is parsed, using this code:

NodeList linkList = drugElement.getElementsByTagName("link");
            Element linkElement = (Element)linkList.item(0);
            NodeList textLinkList = linkElement.getChildNodes();
            link = textLinkList.item(0).getNodeValue().trim();
            Log.i(TAG, "link: "+link);

the result is this:

link: http://basa.med-info.ru/xse/index.php?query=грипп

So, for some reason the rest of URL is lost: &cluster=9025
How to solve it?

Update True code is this:

NodeList linkList = drugElement.getElementsByTagName("link");
            Element linkElement = (Element)linkList.item(0);
            NodeList textLinkList = linkElement.getChildNodes();
            link = "";
            for (int j = 0; j < textLinkList.getLength(); j++)
            {
                    link += textLinkList.item(j).getNodeValue();
            }
            Log.i(TAG, "link: "+link);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

赠我空喜 2025-01-14 19:34:18

因此,您

        link = textLinkList.item(0).getNodeValue().trim();

仅从 中的第一个文本节点显式获取文本。

文本的其余部分很可能位于 textLinkList 中的连续项目中。

You have

        link = textLinkList.item(0).getNodeValue().trim();

thus explicitly getting the text only from the first text node in your <link>.

Most likely the rest of the text is in successive items in textLinkList.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文