간단한 간단한 함수를 만들어서 항목을 제거하고 싶습니다. 매우 간단한 xml 파일이 있습니다. 다음은 내 XML 파일입니다.자바 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>
단순히 파일에서 하나의 이름을 삭제하는 메소드를 호출하고 싶습니다. XML에 익숙하지 않지만 독자와 작성자를 만들었지 만 파일에서 항목을 삭제하는 방법을 만드는 데 문제가 있습니다. 내가 내 말 항목을 삭제 말할
:
deleteItem("Person 3");
그리고 XML 파일이 변경됩니다에 :
<?xml version="1.0"?>
<book>
<person>
<name>Person 1</name>
</person>
<person>
<name>Person 2</name>
</person>
<person>
<name>Person 4</name>
</person>
</book>
내가 잘못 했는가하는 것 :
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);
}
}
}