Java javax.xml.stream.XMLStreamException:属性未与任何元素关联

问题描述

我想修改 xml文件中的属性

        String attr1 = "{http://www.w3.org/1999/xlink}xlink";
        XMLInputFactory factory = XMLInputFactory.newInstance();
        XMLOutputFactory xof = XMLOutputFactory.newInstance();
        XMLEventFactory ef = XMLEventFactory.newInstance();

        XMLEventReader reader = factory.createXMLEventReader(new FileInputStream(path));
        XMLEventWriter writer = xof.createXMLEventWriter(new FileOutputStream(path));

        while (reader.hasNext()) {
            XMLEvent event = (XMLEvent) reader.next();
            if (event.isstartElement()) {
                StartElement s = event.asstartElement();
                Iterator<Attribute> iterator = event.asstartElement().getAttributes();
                String tagName = s.getName().getLocalPart();

                while (iterator.hasNext()) {
                    Attribute attribute = iterator.next();
                    String attributeValue = attribute.getValue();
                    String attributeName = attribute.getName().toString();

                    if (tagName.equals("Main")) {
                        if (attributeName.equals(attr1)) {
                            writer.add(ef.createAttribute(new QName(attr1),"aaa"));
                        }
                    }
                }

XML文件

<?xml version="1.0" encoding="UTF-8"?>
<Main xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
// DATA //
</Main>

当我尝试修改实际的现有属性时,我总是遇到相同的错误

javax.xml.stream.XMLStreamException: Attribute not associated with any element
    at java.xml/com.sun.xml.internal.stream.writers.XMLStreamWriterImpl.writeAttribute

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...