JAVA学习,记录成长

来源:互联网 发布:js设置背景颜色 编辑:程序博客网 时间:2024/06/05 12:48

NodeList的长度是动态的

NodeListc长度是动态的,往其中插入或者删除某个节点,NodeList的长度是动态变化的。

private static Document removeNoImgNode(Document dom, String funCode) throws TransformerException{        Node node =  XPathAPI.selectSingleNode(dom, "//img[@imgTypeCode='testNodeList']");        NodeList nodeList = node.getChildNodes();        if(nodeList != null && nodeList.getLength()>0){            for(int i=0; i<nodeList.getLength(); i++){                Node sonNode = nodeList.item(i);                if(!sonNode.hasChildNodes()){                    node.removeChild(sonNode);                    --i;                }            }        }        return dom;    }

XML中获取单个节点的方法有问题。

Element addImgEle = (Element) XPathAPI.selectSingleNode(flwImg,"//img[@imgCode='testNode']");

如果XML中有多个<img imgCode='testNode'/>,上诉方法总会取第一个。应该根据img标签其他属性来获取自己相要的Elment。

NodeList nodes = XPathAPI.selectNodeList(dom,"//img[@imgTypeCode='testNode']");Element addImgEle = null;for(int nodeC = 0; nodes!=null&&nodeC<nodes.getLength()nodeC++){  Element nodesEle = (Element) nodes.item(nodeC);  String myCountStr = nodesEle.getAttribute("myCount");  if(attachedDocument.equals(myCountStr)){      addImgEle = nodesEle;      break;      }}
原创粉丝点击