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

时间:2012-03-15 06:28:41

标签: java sax

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

由于1.xml包含无效的XML字符,因此解析器将抛出异常,例如在CDATA部分中找到了无效的XML字符(Unicode:0x1d)。
但如果我将1.xml读入一个String并过滤掉所有无效字符,则string不能成为parser.parse()方法的参数。
我该怎么办?

1 个答案:

答案 0 :(得分:2)

您似乎可以使用java.io.StringReader从字符串中生成Reader,然后使用org.xml.sax.InputSource构建StringReader。有parse()的版本需要InputSource个参数。