sax: как разобрать строку, чтобы отфильтровать недопустимый символ XML? - PullRequest
0 голосов
/ 15 марта 2012
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 в строку и отфильтрую все недопустимые символы, строка не может быть аргументом метода parser.parse ().
что я могу сделать?

1 Ответ

2 голосов
/ 15 марта 2012

Похоже, вы можете использовать java.io.StringReader, чтобы сделать Reader из вашей строки, а затем построить org.xml.sax.InputSource, используя StringReader. Есть версия parse(), которая принимает аргумент InputSource.

...