从NamedNodeMap中删除nameditem属性

时间:2015-06-29 21:29:14

标签: java xml dom

我正在尝试从代码段中的namednodemap中删除nameditem。如果我删除它会跳过某些属性,可能会在我删除项目时调整地图索引。

有关如何解决此问题的想法吗?

            NamedNodeMap map = thisNode.getAttributes();
            for (int i=0; i < map.getLength(); i++)
            {
                String itemName = map.item(i).getNodeName();
                String itemValue = map.item(i).getNodeValue();
                logger.debug("Attributes [" + itemName + ":" + itemValue + "]");
                if (itemName.equals("xmlns:xsd") || itemName.equals("elementFormDefault") || itemName.equals("targetNamespace"))
                {
                    logger.debug("Keep this attribute[" + itemName + "]");
                }
                else if (itemValue.contains(IDENTIFIER))
                {
                    logger.debug("Keep this attribute [" + itemName + ":" + itemValue + "]");
                }
                else //if (removeThis)
                {                       
                    // remove these attribute name spaces
                    logger.debug("Remove [" + itemName + "]");
                    if (itemName.equalsIgnoreCase(itemName))
                    {
                        //map.removeNamedItem(map.item(i).getNodeName());
                    }
                }
            }

1 个答案:

答案 0 :(得分:0)

你可能想尝试从头到尾迭代:

for (int i=map.getLength()-1; i>=0; i--)