java xml supprimer l'élément

J'ai un fichier xml très simple que je voudrais créer une fonction simple pour supprimer un élément de celui-ci. Voici mon fichier xml:

    <?xml version="1.0"?>
<book>
  <person>
    <name>Person 1</name>
  </person>
  <person>
    <name>Person 2</name>
  </person>
  <person>
    <name>Person 3</name>
  </person>
  <person>
    <name>Person 4</name>
  </person>
</book>

Je veux simplement appeler une méthode pour supprimer un nom de fichier. Je ne suis pas très familier avec le langage XML, mais a réussi à créer un lecteur et d'écrivain, mais maintenant, je vais avoir des problèmes lors de la création d'une méthode pour supprimer un élément à partir de mon fichier.

Quand je dis de supprimer un élément que je veux dire:

deleteItem("Person 3");

Puis le fichier XML qui va changer à:

<?xml version="1.0"?>
    <book>
      <person>
        <name>Person 1</name>
      </person>
      <person>
        <name>Person 2</name>
      </person>
      <person>
        <name>Person 4</name>
      </person>
    </book>

Qu'ai-je fait de mal:

public static void removeName(String personName) throws ParserConfigurationException, IOException, SAXException{
        DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
        Document doc = docBuilder.parse (new File("test.xml"));

        NodeList nodes = doc.getElementsByTagName("person");
        for (int i = 0; i < nodes.getLength(); i++) {       
            Element person = (Element)nodes.item(i);
            Element name = (Element)person.getElementsByTagName("name").item(0);
            String pName = name.getTextContent();
            if(pName.equals(personName)){
                person.getParentNode().removeChild(person);
            }
        }

    }

OriginalL'auteur mbreen | 2011-08-11