Android中的Dom解析

发布于 2024-10-14 03:42:31 字数 386 浏览 1 评论 0原文

如果我解析包含

Some Text

标记的标记,则会出现空指针异常。

我的 RSS 提要如下:

<quaddeals_conditions><p>Limit one QuadDeal</p></quaddeals_conditions>

我的代码是:

if (name.equalsIgnoreCase("quaddeals_conditions")) {
    property.normalize();
    conditions = property.getFirstChild().getNodeValue();   
}

If I parse the tag that contains <p>Some Text</p> tag, I get a null pointer exception.

My RSS feed is as follows:

<quaddeals_conditions><p>Limit one QuadDeal</p></quaddeals_conditions>

My code is:

if (name.equalsIgnoreCase("quaddeals_conditions")) {
    property.normalize();
    conditions = property.getFirstChild().getNodeValue();   
}

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

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

发布评论

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

评论(2

早茶月光 2024-10-21 03:42:31

你的元素里面有一个元素

因此,检索所有四边形,然后迭代每个四边形并从中检索 p 元素:

DocumentBuilder builder = factory.newDocumentBuilder();
Document dom = builder.parse(this.inputStream);
Element root = dom.getDocumentElement();

// snip

NodeList items = root.getElementsByTagName("quaddeals_conditions");
for (int i = 0; i < items.getLength(); i++) {
            Node item = items.item(i);
            NodeList properties = item.getChildNodes();
            for (int j = 0; j < properties.getLength(); j++) {
                Node property = properties.item(j);
                String name = property.getNodeName();
                if (name.equalsIgnoreCase("p")) {
                    property.getFirstChild().getNodeValue(); // Your paragraph data
                }
            }
}

希望这会有所帮助。

You have an element

inside an element .

Therefore retrieve all quaddeals and then iterate each one and retrieve from it the p element:

DocumentBuilder builder = factory.newDocumentBuilder();
Document dom = builder.parse(this.inputStream);
Element root = dom.getDocumentElement();

// snip

NodeList items = root.getElementsByTagName("quaddeals_conditions");
for (int i = 0; i < items.getLength(); i++) {
            Node item = items.item(i);
            NodeList properties = item.getChildNodes();
            for (int j = 0; j < properties.getLength(); j++) {
                Node property = properties.item(j);
                String name = property.getNodeName();
                if (name.equalsIgnoreCase("p")) {
                    property.getFirstChild().getNodeValue(); // Your paragraph data
                }
            }
}

Hope this helps.

咆哮 2024-10-21 03:42:31

“名称”不为空吗?我没有看到你检查这一点。
如果可能的话,最好以其他方式进行比较:

if ("quaddeals_conditions".equalsIgnoreCase(name))...

因此,即使“name”为 NULL,您也不会得到 NullPointerException。
在访问某些对象成员之前始终检查是否为 null。

is "name" not NULL? I dont see you check for that.
It's good coding practice to compare the other way if possible:

if ("quaddeals_conditions".equalsIgnoreCase(name))...

So even if "name" is NULL, you don't get a NullPointerException.
Always check for not null before accessing some object member.

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