Java如何在同一方法中使用XMLStreamReader和XMLStreamWriter
我使用XMLStreamReader读取xml文件。我要复制此实际文件并在此文件中添加一些节点:Java如何在同一方法中使用XMLStreamReader和XMLStreamWriter,java,xml,stax,Java,Xml,Stax,我使用XMLStreamReader读取xml文件。我要复制此实际文件并在此文件中添加一些节点: XMLInputFactory factory = XMLInputFactory.newInstance(); try { XMLStreamReader dataXML = factory.createXMLStreamReader(new FileReader(path)); XMLStreamWriter dataWXML = (XMLStr
XMLInputFactory factory = XMLInputFactory.newInstance();
try {
XMLStreamReader dataXML = factory.createXMLStreamReader(new FileReader(path));
XMLStreamWriter dataWXML = (XMLStreamWriter) factory.createXMLStreamReader(new FileReader(path));
while (dataXML.hasNext())
{
int type = dataXML.next();
switch(type)
{
case XMLStreamReader.START_ELEMENT:
dataWXML.writeStartElement("apple");
break;
}
}
当我尝试运行时,我遇到了以下错误:线程“main”java.lang.ClassCastException中的异常:class com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl无法转换为class javax.xml.stream.XMLStreamWriter
最好的方法是什么?使用
XMLOutputFacotry
创建输出流
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLOutputFactory outFactory = XMLOutputFactory.newInstance();
try {
XMLStreamReader dataXML = factory.createXMLStreamReader(new FileReader(path));
XMLStreamWriter dataWXML = factory.createXMLStreamWriter(new FileReader(otherPath));
...
}
注意,输出文件使用了另一个路径这一行是您的问题:
XMLStreamWriter dataWXML = (XMLStreamWriter) factory.createXMLStreamReader(new FileReader(path));
您无法将XMLStreamReader强制转换为XMLStreamWriter。它们是独立的类,XMLStreamWriter不是从XMLStreamReader扩展而来的我也在使用
XMLStreamReader
,但面临一些问题。我已经将问题和示例代码发布在这里。如果你有机会,你能看看这个并提供你的建议吗?我也在使用XMLStreamReader
,但面临一些问题。我已经将问题和示例代码发布在这里。如果你有机会,你能看看这个并提供你的建议吗?