如何从OSGVP中的组中删除特定的子节点?

时间:2013-06-06 09:44:02

标签: java

我有以下问题,我不知道如何解决它。

我有一个Group类,我有一些Nodes,我不断添加更多节点。其中一个名为"figure",我想识别此节点以将其删除。

例如,我有一个初始组:

1行 2点 3图

然后我添加更多节点:

1行 2点 3图 4行 5点

我已经使用过这个,但我没有得到它,因为我只能在一种情况下使用它:

pp.setNodeName("figure");

int numNodes= this._featureNodes.getNumChildren();

if (this._featureNodes.getChild(numNodes-1).getNodeName() == "figure")
{
    this._featureNodes.removeChild(numNodes-1); 
}

2 个答案:

答案 0 :(得分:0)

使用equals()对字符串进行comap而不是==运算符。 equals()比较nodeName是否具有相同的字符串字符。 ==比较两个引用是否引用同一个对象。因此,您的if块将如下所示:

if (this._featureNodes.getChild(numNodes-1).getNodeName().equals("figure"))
{
    this._featureNodes.removeChild(numNodes-1); 
}

答案 1 :(得分:0)

我明白了!

解决方案是创建一个“for”循环来读取我的组中的所有项目,并像这样识别节点“figure”:

 for (int i = 0 ; i< this._featureNodes.getNumChildren(); ++i){

   if (_featureNodes.getChild(i).getNodeName().equals("figure"))
    {
        this._featureNodes.removeChild(i);  
    }
 }