java-xml-Objekt entfernen

Habe ich eine sehr einfache xml-Datei, ich möchte eine einfache Funktion zum entfernen eines Elements aus. Hier ist meine xml-Datei:

    <?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>

Ich will einfach rufen Sie eine Methode zum löschen eines namens aus der Datei. Ich bin nicht sehr vertraut mit XML aber hat es geschafft, erstellen Sie eine reader-und writer-aber jetzt bin ich Probleme beim erstellen einer Methode zum löschen eines Elements aus meiner Datei.

Wenn ich sage, ein Element zu löschen ich meine:

deleteItem("Person 3");

Und dann wird die XML-Datei ändern:

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

Was habe ich falsch gemacht:

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);
            }
        }

    }

InformationsquelleAutor mbreen | 2011-08-11

Schreibe einen Kommentar