-1

我想将从程序的其他部分获取的节点插入到 NodeList 中。

static void NodeCheck(Node node)
{
    NodeList NodeArray = null;
    for(int i=0;NodeArray.getLength()<=i;i++)
    {
        NodeArray.item(i)=node;
    }
} 

在这里,NetBeans 给了我一个错误,我需要一个变量而不是值。解决方案是什么?

编辑:好的,让我们改变这个

NodeList NodeArray = null;

        NodeArray.item(0)=node;

没有迭代,仍然相同的错误,,,,

编辑NO.2:让我让我的问题更清楚,我怎样才能将节点(单节点)插入到数组之类的东西中?蚂蚁的想法?这样做的原因是将它们相互比较以查看它们相同或不同的天气。

4

6 回答 6

2

此行会将 NodeArray 设置为 null。

  NodeList `NodeArray` = null;

在下一行中,您尝试在 this 上调用一个NodeArray为 null 的方法,这是行不通的。

  NodeArray.getLength()

您必须将 NodeArray 正确初始化为非空值。

于 2011-11-29T10:15:59.100 回答
0

您无法插入org.w3c.dom.NodeList. 使用适当的元素方法,例如org.w3c.dom.Node#appendChild

于 2011-11-29T10:16:01.533 回答
0

它可能是 nullPointerException,因为当您为其调用 length() 方法时,NodeArray 为 null。

于 2011-11-29T10:16:02.063 回答
0

我认为您遇到的第一个问题是 NodeArray 为空,并且您无法访问空元素的属性...尝试执行以下操作:

NodeList NodeArray = new NodeList();
于 2011-11-29T10:17:16.840 回答
0

您必须分配“nodeArray”,并且您会在“NodeArray.getLength()”行上获得 NullPointerException。我还建议以小写字母开头的变量和函数名称(按照惯例)。

static Node rootNode; 
static void nodeCheck(Node node)
{
    NodeList nodeArray = rootNode.getChildNodes(); // if rootNode==null -> NullPointerException
    for(int i=0;nodeArray.getLength()<=i;i++) // if nodeArray==null -> NullPointerException
    {
        //replace child of rootNode by node
        rootNode.replaceChild(node,nodeArray.item(i));           
    }
    //add child to rootNode
    rootNode.appendChild(node); 
}

最好的问候,朱利安

于 2011-11-29T10:18:23.190 回答
0

当你在那里什么都没有并且你正在迭代它时,它将产生空指针。

NodeList应该在迭代之前初始化。

于 2011-11-29T10:22:01.543 回答