Я бы предпочел StringReader, потому что он избегает String.getBytes (), но обычно это также должно работать.
Майкл Майерс
3
Когда вы вызываете getBytes (), какую кодировку вы ожидаете использовать? Как вы говорите парсеру XML, какую кодировку он получает? Вы ожидаете это угадать? Что происходит, когда вы находитесь на платформе, где кодировка по умолчанию не UTF-8?
javax.xml.parsers.DocumentBuilder.parse(string)
предполагается, что строка является URI (ужасно ...)Ответы:
У меня есть эта функция в моей базе кода, это должно работать для вас.
также увидеть этот похожий вопрос
источник
import org.xml.sax.InputSource;
Одним из способов является использование версии синтаксического анализа, которая принимает InputSource, а не файл
SAX InputSource может быть создан из объекта Reader. Один объект Reader является StringReader
Так что-то вроде
источник
Javadocs показывают, что метод разбора перегружен.
Создайте StringStream или InputSource, используя вашу строку XML, и вы должны быть установлены.
источник
Преобразуйте строку в InputStream и передайте ее DocumentBuilder.
РЕДАКТИРОВАТЬ
В ответ на комментарий Bendin относительно кодировки, см. Ответ shsteimer на этот вопрос.
источник
Я использую этот метод
источник
Вы можете использовать пакет Scilca XML Progession, доступный на GitHub.
источник
просто введите
источник