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

发布于 2024-09-29 16:54:58 字数 265 浏览 1 评论 0原文

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

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

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

I want to modify my name in xml cv file, but when I use this statement:

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

all the content of the file are removed and it becomes empty. Basically, I want to open (eman.xml) for modification without removing its content.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情释 2024-10-06 16:54:58

如果你想使用 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.

} }

<代码>

If u want to use STAX in processing your xml file , u should know that u can only read/write from/ to xml file , but if u want to modify ur xml when exact event happen in STAX u could make processing for ur xml using DOM .
here is some example:


   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.

} }

何以笙箫默 2024-10-06 16:54:58

关于使用 stax 同时读写的问题也在这里得到解答:如何通过StAX修改巨大的XML文件?

The question about reading and writing at the same time with stax is also answered here: How to modify a huge XML file by StAX?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文