gpt4 book ai didi

java - Java DOM 中的空指针异常

转载 作者:行者123 更新时间:2023-12-01 13:13:18 25 4
gpt4 key购买 nike

我使用以下代码进行 xml 节点提取,但我得到了空指针异常

<root>
<place >
<city> aaaaaa </city>
<state / >
<country> zzzzzzzz </country>
<place>

</root>

我尝试过以下代码

NodeList nodeList = (NodeList)xPath1.compile(temp).evaluate(xmlDocument,XPathConstants.NODESET);
TempFlat = nodeList.item(0).getFirstChild().getNodeValue();

我用谷歌搜索得到了这个

 NodeList nodeList = (NodeList)xPath1.compile(temp).evaluate(xmlDocument,XPathConstants.NODESET);
Node nValue = (Node) nodeList.getFirstChild();

其中 temp 是我的 xpath 。可以从文件中读取。示例

/root/place/city
/root/place/city
/root/place/city

但是为此我收到以下错误

E:\Work\java\test.java:80: cannot find symbol
symbol : method getFirstChild()
location: interface org.w3c.dom.NodeList
Node nValue = (Node) nodeList.getFirstChild();
^
1 error

我发现,这是因为<state / >是空的 。我该如何解决这个问题。谁能帮帮我

注意: 我已经找到了我发布的第二个错误的原因,但我需要解决空指针异常

最佳答案

NodeList 没有任何方法 getFirstChild()

http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/NodeList.html

一旦你有了NodeList

NodeList nodeList = (NodeList)xPath1.compile(temp).evaluate(xmlDocument,XPathConstants.NODESET);

在从nodeList获取任何节点之前,检查它的长度

if (nodeList.getLength() > 0)
Node node = nodeList.items(0);

类似地,一旦你有了Node并且你想在这里获取第一个子节点,你需要确保该节点有一些子节点

if (node.hasChildNodes())
String value = node.getFirstChild().getNodeValue();

这样您就可以避免 null 值。

关于java - Java DOM 中的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22669452/

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