Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用XmlStreamReader跳过无效的xml元素_Java_Xml_Xml Parsing_Xmlstreamreader - Fatal编程技术网

Java 使用XmlStreamReader跳过无效的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:

<?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)