Проблема с парсингом xml на linux

144
13 сентября 2019, 12:30

Мне необходимо распарсить xml, который содержит русские буквы. Он лежит в postgresql базе. На windows проблем с этим не возникло, использую

 doc.getElementsByTagNameNS ("*","название_тега");

Но когда запускаю ту же программу на linux, элементы не находятся.

Приложение написано на Spring (App extends SpringBootServletInitializer) и запущено под tomcat(нужна именно конфигурация war).

Ниже приведен код считывания xml. Есть подозрение что проблема с кодировкой, но как ее решить не знаю. Подскажите пожалуйста.

 public Document readXml(String xml) throws ParserConfigurationException, IOException, SAXException {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setNamespaceAware(true);
    DocumentBuilder db = factory.newDocumentBuilder();
    InputStream is = new ByteArrayInputStream(xml.getBytes("UTF-8"));
    Document document = db.parse(is);
    return document;
}

UPD:

Сейчас проверила как он пишет в файл - кодировка KOI8-R. То есть в поле названия тега записывается не UTF-8, а KOI8-R, и поэтому не может найти подходящий тэг.

Answer 1

Вот такой костыль с перекодировкой русских слов решил вопрос, но я уверена есть нормальное решение. Пусть пока полежит здесь

public static String magic(String str) {
        byte ptext[] = new byte[0];
        try {
            ptext = str.getBytes("KOI8_R");
            String value = new String(ptext, "UTF-8");
            return value;
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return str;
    }
READ ALSO
Не могу сделать импорт

Не могу сделать импорт

У меня на данный момент вот такое дерево

148
Кнопка Иконка + Текст

Кнопка Иконка + Текст

Подскажите, пожалуйста, как реализовать кнопку такого вида?

119
Замена строки в таблицу MySql из приложения

Замена строки в таблицу MySql из приложения

подскажите пожалуйста как я могу обратиться из андроид программы к базе данных MySql на сервере и заменить данные в таблицы tbl_menu в столбце price на другие

150
Прочитать файл по строкам в Spring Boot

Прочитать файл по строкам в Spring Boot

Всем привет, хочу прочитать файл по строкам в Spring Boot приложенииНаписал такой код

134