Entfernen habe ich eine XML-Datei, die diese enthält:ein Element aus XML-Datei Java
<class>
<Video>Spiderman</Video>
<Video>Superman</Video>
</class>
Ich möchte einer von ihnen Eingänge basierend auf, was ein Benutzer entfernen. Was ich bisher habe, ist
for (int x=0; x<videodatabase.size(); x++) {
if (inputVideo.getText().contentEquals(videodatabase.get(x))) {
try {
String filepath = "videodatabase.xml";
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filepath);
// I want to remove the <Video>name of the video</Video> from the xml here.
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(filepath));
transformer.transform(source, result);
}
catch(ParserConfigurationException pce){
pce.printStackTrace();
}
catch(TransformerException tfe){
tfe.printStackTrace();
}
catch(IOException ioe){
ioe.printStackTrace();
}
catch(SAXException sae){
sae.printStackTrace();
}
}
}
Wie Sie die Programmprüfung sehen, um zu sehen, ob der Name des Videos in der Array-Liste genannt videodatabase eingegeben ist. Wenn es ist, öffnet es die XML-Datei und bereitet vor, das eingegebene Video zu entfernen. Aber ich stecke hier fest. Ich möchte, dass die XML-Datei aussehen:
<class>
<Video>Spiderman</Video>
</class>
Es gibt mehrere Möglichkeiten xml in Java zu manipulieren. Da Sie TransformerFactory verwenden, möchten Sie offenbar XSLT verwenden. Die eigentliche Frage lautet also: "Wie entferne ich ein Element mit XSLT?". Übrigens sollten Sie die XSLT-Vorlage an den Aufruf newInstance() übergeben. Ein anderer Weg wäre, JAXB zu verwenden, um ein Java-Modell des xml, remote one-Elements zu erstellen und es dann erneut in xml zu serialisieren. – Peter
Ich stimme mit @Peter nicht überein. Die 'TransformerFactory' ist die Standardmethode zum Serialisieren eines DOM-Dokuments. Dies bedeutet nicht automatisch, dass XSLT verwendet werden muss. Ich denke, es ist viel einfacher, einen Knoten mit einfacher DOM-Manipulation zu entfernen als mit XSLT. – vanje