我想在 xml cv 文件中修改我的名字,但是当我使用这个语句时:
XMLOutputFactory xof = XMLOutputFactory.newInstance();
XMLStreamWriter xtw = null;
xtw = xof.createXMLStreamWriter(new FileWriter("eman.xml"));
文件的所有内容都被删除并变为空。基本上,我想在不删除其内容的情况下打开(eman.xml)进行修改。
关于stax同时读写的问题,这里也有解答:StAX如何修改一个巨大的XML文件?
如果您想使用 STAX 处理您的 xml 文件,您应该知道您只能读取/写入 xml 文件,但是如果您想在 STAX 中发生确切事件时修改您的 xml,您可以使用DOM 。这是一些例子:
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader xmlReader= factory.createXMLStreamReader(new FileReader(fileName));
int eventType;
while(xmlReader.hasNext()){
eventType= xmlReader.next();
if(eventType==XMLEvent.START_ELEMENT)
{
QName qNqme = xmlReader.getName();
if("YURTAG".equals(qNqme.toString()))
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
File file = new File("YOURXML.xml");
Document doc = builder.parse(file);
//make the required processing for your file.
}
}