java - 无法删除 xml 文件的节点 'parameter'

标签 java xml removechild

- <deviceparameters>
- <parameter componenttype="Table">
       <name>TPCSEC</name> 
       <oid>342234</oid> 
       <writable>true</writable> 
       <description>Tata Power SED</description> 
     - <columns>
           <colname access="ReadOnly" type="Integer">col1</colname> 
           <colname access="ReadOnly" type="Integer">col2</colname> 
       </columns>
     - <rows>
           <value>123</value> 
          <value>231</value> 
      </rows>
  </parameter>
- <parameter componenttype="ListBox">
      <name>Enum</name> 
      <oid>7892</oid> 
      <writable>true</writable> 
      <description>This is Enumeration</description> 
    - <paramvalues type="String">
         <value default="Yes">1231</value> 
         <value default="No">3423</value> 
         <value default="Yes">231</value> 
      </paramvalues>
  </parameter>
  </deviceparameters>

这是我的 XML 文件。现在我想删除名为 TPCSEC 的节点“parameter”。

对于此删除,我使用以下代码。

               DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
                DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
                doc = dBuilder.parse(selectedFile);
                doc.getDocumentElement().normalize();

                rootElement = doc.getDocumentElement();

                NodeList nList = doc.getElementsByTagName("parameter");

                System.out.println(""+nList.getLength());
                for (int temp = 0; temp < nList.getLength(); temp++)
                {
                    Node nNode =  nList.item(temp);    
                    Element eElement = (Element) nNode;
                    String upname1 = getTagValue("name", eElement);                                

                    if(upname1.equals(nodeName))
                    {
                        System.out.println("Parent:   "+nNode.getParentNode().getNodeName());
                        System.out.println("nodename: "+nNode.getNodeName());
                        System.out.println("rmoving ....");

                        rootElement.removeChild(eElement);
                        System.out.println("removed...");

                    }
                }

我的代码是否正确?执行时,它不会显示任何错误或警告。但它不会删除所请求的节点。 谢谢..

最佳答案

你把它写到原来的xml文件了吗?我的意思是

TransformerFactory transformerFactory = TransformerFactory.newInstance();  
Transformer transformer = transformerFactory.newTransformer();   
DOMSource source = new DOMSource(doc);   
StreamResult result = new StreamResult(selectedFile); 
transformer.transform(source, result);   

关于java - 无法删除 xml 文件的节点 'parameter',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9822481/

相关文章:

xml - 分配/绑定(bind) for 子句的结果?

用于在 html (golang) 中查找图像的正则表达式

javascript - 正确遍历节点 - javascript childNodes

actionscript-3 - 无法删除 Sprite 容器的所有图像

java - 从 HashMap 中删除最旧的对象以达到特定大小?

java - 在 Eclipse Debugger (for Java) 中,有没有办法检查任意值?

java - 在 eclipse 中突出显示 html 标签(打开/结束)

Java Quartz Scheduler - getScheduledFireTime 返回错误值

java - Java Swing 的 IDE

javascript - 从父级中删除多个子级?