Java 使用XmlStreamReader跳过无效的xml元素
我想解析我的xml:Java 使用XmlStreamReader跳过无效的xml元素,java,xml,xml-parsing,xmlstreamreader,Java,Xml,Xml Parsing,Xmlstreamreader,我想解析我的xml: <?xml version="1.0" encoding="UTF-8" ?> <REPLY SERVICENAME="ServerWrapper"> <ROWSET name="ServiceName"> <ROW num="1"> <AMOUNT_TOTAL>26865</AMOUNT_TOTAL> <REQUESTED_
<?xml version="1.0" encoding="UTF-8" ?>
<REPLY SERVICENAME="ServerWrapper">
<ROWSET name="ServiceName">
<ROW num="1">
<AMOUNT_TOTAL>26865</AMOUNT_TOTAL>
<REQUESTED_SEARCH_VALUE>eur</REQUESTED_SEARCH_VALUE>
<SELECTED_ID>ABC,XYZ</SELECTED_ID>
<AMOUNT>10</AMOUNT>
<ABC,XYZ.AMOUNT>26865</ABC,XYZ.AMOUNT>
<ROWSET name="ServiceName.DATA">
<ROW num="1">
</ROW>
...
</ROWSET>
</ROW>
</ROWSET>
</REPLY>
但在解析时,我遇到了一个异常:
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[2,237]
Message: Element type "ABC" must be followed by either attribute specifications, ">" or "/>".
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:601)
有人能帮我解决这个问题吗?根据定义,
XmlStreamReader
需要接收语法有效的XML。在将无效元素传递给XML读取器之前,您需要自己读入这些行,并将其替换为有效的元素名。@JimGarrison是否有办法跳过无效元素?您已经将整个输入XML保存在一个字符串中。您可以将FilterReader
包装在StringInputStream
周围,并动态删除有问题的内容。
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[2,237]
Message: Element type "ABC" must be followed by either attribute specifications, ">" or "/>".
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:601)