如何使用Java中的StAX修改XML元素

时间:2010-10-28 10:12:28

标签: java xml stax

我想在xml cv文件中修改我的名字,但是当我使用这个语句时:

XMLOutputFactory xof = XMLOutputFactory.newInstance();
XMLStreamWriter xtw = null;
xtw = xof.createXMLStreamWriter(new FileWriter("eman.xml"));

删除文件的所有内容,它变为空。基本上,我想打开(eman.xml)进行修改而不删除其内容。

2 个答案:

答案 0 :(得分:0)

如果你想在处理你的xml文件时使用STAX,你应该知道你只能读取/写入xml文件,但是如果你想在STAX中发生确切事件时修改你的xml你可以进行处理ur 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.

} }
} }

答案 1 :(得分:0)

这里也回答了关于使用stax同时阅读和写作的问题:How to modify a huge XML file by StAX?