2012-03-02 73 views
1

我想根据属性使用DOM解析器使用JAVA从XML文件中删除节点。 对于实例如何根据属性使用DOM从DOM中删除节点DOM解析器

<company> 
    <staff id="1"> 
     <firstname>yong</firstname> 

    </staff> 
    <staff id="2"> 
     <firstname>low</firstname> 

    </staff> 
</company> 

根据工作人员的ID,我想删除节点。

+1

我在做完所有docummentBuilder API之后尝试了下面的代码。 NodeList nList = doc.getElementsByTagName(“staff”); 对(INT I = 0; I Eshika 2012-03-02 11:51:46

+0

- 会发生什么?你会得到一个异常还是仍然在DOM中的被删除的节点? – 2012-03-02 11:58:34

+0

没有Exception.Node仍然存在于DOM中。 – Eshika 2012-03-03 05:12:00

回答

1

感谢您的回复。 我发布的上述解决方案是正确的。只有我需要用一些转换API再次编写xml。 发布解决方案,如果任何机构有同样的问题。

try{ 
          //Save the Created XML on Local Disc using Transformation APIs as Discussed 
          TransformerFactory tFactory = TransformerFactory.newInstance(); 
          Transformer transformer = tFactory.newTransformer(); 
          transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
          Source s = new DOMSource(doc); 
          Result res = new StreamResult(new FileOutputStream(fXmlFile)); 
          try { 
           transformer.transform(s, res); 
          } catch (TransformerException e) { 
           // TODO Auto-generated catch block 
           e.printStackTrace(); 
          } 

         } catch(TransformerConfigurationException e) 
         { 
          e.printStackTrace(); 
         } 
         } catch (Exception e) { 
         e.printStackTrace(); 
         }