Java sax:如何解析字符串以过滤无效的XML字符?

Java sax:如何解析字符串以过滤无效的XML字符?,java,sax,Java,Sax,由于1.xml包含无效的xml字符,解析器将抛出异常,例如在CDATA部分中发现无效的xml字符(Unicode:0x1d)。 但是,如果我将1.xml读入字符串并过滤所有无效字符,则字符串不能作为parser.parse()方法的参数。 我能做什么?看起来您可以使用java.io.StringReader从字符串生成读取器,然后使用StringReader构建org.xml.sax.InputSource。有一个版本的parse()接受一个InputSource参数 URL url = new

由于1.xml包含无效的xml字符,解析器将抛出异常,例如在CDATA部分中发现无效的xml字符(Unicode:0x1d)。
但是,如果我将1.xml读入字符串并过滤所有无效字符,则字符串不能作为parser.parse()方法的参数。

我能做什么?

看起来您可以使用
java.io.StringReader
从字符串生成
读取器
,然后使用
StringReader
构建
org.xml.sax.InputSource
。有一个版本的
parse()
接受一个
InputSource
参数

URL url = new URL("http://www.site.com/1.xml");
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XMLHandler handler = new XMLHandler();
parser.parse(url.openStream(),handler);