powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / java и xml
36 сообщений из 36, показаны все 2 страниц
java и xml
    #38229326
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем привет, ситуация такая, получаю ответ от веб сервиса в виде строки с xml и там вместо кириллицы спецсимволы Оплата в и т.д. Сам вебсервис менять не могу, надо обработать строку так чтобы все было корректно.
Какой есть способ менее ресурсоемкий чем создавать таблицу символов и соответсвий и потом string.replaceall?
...
Рейтинг: 0 / 0
java и xml
    #38229337
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miklouhaвсем привет, ситуация такая, получаю ответ от веб сервиса в виде строки с xml и там вместо кириллицы спецсимволы Оплата в и т.д. Сам вебсервис менять не могу, надо обработать строку так чтобы все было корректно.
Какой есть способ менее ресурсоемкий чем создавать таблицу символов и соответсвий и потом string.replaceall?
1) Пофиксить чтение HTTP отклика, чтобы читать в правильной кодировке, а не в какой попало.
2) Использовать инструменты работы с XML вместо работы со строкой.
...
Рейтинг: 0 / 0
java и xml
    #38229344
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

а там все выставил ка кнадо
httpConn.setRequestProperty("Content-Length",String.valueOf(b.length));
httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
, можно пример если не затруднит?
...
Рейтинг: 0 / 0
java и xml
    #38229348
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
miklouha,

Ссылка
...
Рейтинг: 0 / 0
java и xml
    #38229352
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miklouhaа там все выставил ка кнадо
httpConn.setRequestProperty("Content-Length",String.valueOf(b.length));
httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");

Это кодировка запроса. Сервер вам присылает ответ в какой-то кодировке. Вы его читаете тоже в какой-то кодировке. К этому коду чтение ответа сервера отношение не имеет.

miklouha, можно пример если не затруднит?
Чего пример?
Взяли бы jaxws, да за 10 минут сварганили клиента по WSDL.
http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/2.0/tutorial/doc/JAXWS.html
...
Рейтинг: 0 / 0
java и xml
    #38229353
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/2.0/tutorial/doc/JAXWS.html
Ой, не та ссылка. Смотри ответ WGA выше.
...
Рейтинг: 0 / 0
java и xml
    #38229364
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WGA,

не совсем то, веб сервис вызывается без JAX-WSи прочих библиотек, делается вот так http://technology.amis.nl/2011/06/29/how-to-call-a-call-a-webservice-directly-from-java-without-webservice-library. Проблема не в вызове вебсервиса, он вызывается и отрабатывает нормально, нужно в обратном полученном потоке вместо спец символов отображать их реальные значения.
...
Рейтинг: 0 / 0
java и xml
    #38229369
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

мне клиент не нужен, у меня с вебсервисом проблем нет, мне надо заменить спецсимволы.
...
Рейтинг: 0 / 0
java и xml
    #38229393
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miklouhaWGA,

не совсем то, веб сервис вызывается без JAX-WSи прочих библиотек, делается вот так http://technology.amis.nl/2011/06/29/how-to-call-a-call-a-webservice-directly-from-java-without-webservice-library. Проблема не в вызове вебсервиса, он вызывается и отрабатывает нормально, нужно в обратном полученном потоке вместо спец символов отображать их реальные значения.
Ну, и зачем вы всякой фигней пользуетесь?
Бага вот тут:
Код: java
1.
2.
InputStreamReader isr =
        new InputStreamReader(httpConn.getInputStream());


Вместо той кодировки в которой сервер ответил, ваш код использует текущую системную. Очевидно они разные.
...
Рейтинг: 0 / 0
java и xml
    #38229397
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miklouhaмне клиент не нужен

Вы же его пишете. Зачем вы его пишете, если он не нужен?

miklouha, у меня с вебсервисом проблем нет,

ОК.

miklouhaмне надо заменить спецсимволы.
Это не "спецсимволы". Это испорченый текст из-за баги в вашем коде.
...
Рейтинг: 0 / 0
java и xml
    #38229413
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пишите кто сталкивался с такой проблемой...грубо говоря есть строка xml надо там заменить спец символы...
...
Рейтинг: 0 / 0
java и xml
    #38229434
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miklouhaпишите кто сталкивался с такой проблемой...грубо говоря есть строка xml надо там заменить спец символы...
Это ты так вежливо послал тех кто тебе пытаеться помочь? Ну, удачи. Разбирайся сам.
...
Рейтинг: 0 / 0
java и xml
    #38229504
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извиняюсь если кого обидел, может толком не описал задачу полностью. Попробую еще раз...
Веб сервис работает правильно, и ответ возвращает правильный, но вместо скобок приходят спец символы, а вместо кириллицы Escape-символы. Тут дело не в кодировке, просто веб сервис такой ответ возвращает и мне нужно заменить в тексте спец символы и Escape-символы на то чем они должны быть.
...
Рейтинг: 0 / 0
java и xml
    #38229513
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тю. Если последовательности, то вот:
http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringEscapeUtils.html
Но это скользкий путь работы с XML как со строкой.
...
Рейтинг: 0 / 0
java и xml
    #38229532
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

спасибо, уже скачал...там есть функция StringEscapeUtils.unescapeXml(). Понимаю что скользкий, просто вебсервис не я писал и менять никто не будет...
...
Рейтинг: 0 / 0
java и xml
    #38229542
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miklouhaBlazkowicz,

спасибо, уже скачал...там есть функция StringEscapeUtils.unescapeXml(). Понимаю что скользкий, просто вебсервис не я писал и менять никто не будет...
При чем тут сервис? Просто если с XML работать через XML API, то вопросов не возникнет. Поэтому решение работать с XML как со строкой немного странное.
...
Рейтинг: 0 / 0
java и xml
    #38229559
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

даже если xml возвращается в soap конверте? как сам текст xml оттуда вычленить?
...
Рейтинг: 0 / 0
java и xml
    #38229581
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А между тем, генерация JAX-WS клиента и 10 минут не заняла бы, и спецсимволы автоматом бы распарсились.
А вот с этим "у меня все и так работает, только кодировка какая-то не такая" - до сих пор задача не решена
...
Рейтинг: 0 / 0
java и xml
    #38229587
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivanra,

в этом приложении нельзя использовать этот клиент, задача так стоит...с кодировкой все нормально, просто надо обратно преобразовать escape последовательность. И почему решили что JAX-WS клиент вернет что то другое? он вернет тоже самое не в клиенте дело.
...
Рейтинг: 0 / 0
java и xml
    #38229591
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miklouhaв этом приложении нельзя использовать этот клиент, задача так стоит...с кодировкой все нормально, просто надо обратно преобразовать escape последовательность. И почему решили что JAX-WS клиент вернет что то другое? он вернет тоже самое не в клиенте дело.
Потому что JAX-WS включает в себя функиции XML парсера и все escape последовательности нормально преобразует в String значения.
...
Рейтинг: 0 / 0
java и xml
    #38229604
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

сомневаюсь что то...попробовал только что StringEscapeUtils.unescapeXml(s) и преобразовались только escape символы для скобок, кириллические символы так и остались в escape виде.
я раньше использовал этот пакет кстати для другой задачи c сервером приложений bi publisher..сейчас просто именно задача стоит сделать без сторонних пакетов.
...
Рейтинг: 0 / 0
java и xml
    #38229608
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miklouhaBlazkowicz,

сомневаюсь что то...попробовал только что StringEscapeUtils.unescapeXml(s) и преобразовались только escape символы для скобок, кириллические символы так и остались в escape виде.
я раньше использовал этот пакет кстати для другой задачи c сервером приложений bi publisher..сейчас просто именно задача стоит сделать без сторонних пакетов.
Значит вы нас где-то обманываете с Escape последователностями. Покажите какой текст на входе?
...
Рейтинг: 0 / 0
java и xml
    #38229625
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

да он походу только для символов скобок и т.д. попробуйте напрмер использовать функцию для создания escape последовательности из обычных символов System.out.println(StringEscapeUtils.escapeXml("sdfsd")) не сработает...
...
Рейтинг: 0 / 0
java и xml
    #38229626
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miklouhaв этом приложении нельзя использовать этот клиент, задача так стоит...с кодировкой все нормально, просто надо обратно преобразовать escape последовательность. И почему решили что JAX-WS клиент вернет что то другое? он вернет тоже самое не в клиенте дело.
Даже если нельзя использовать JAX-WS (ну, там, протокол связи не тот, библиотека недоступна, какие-то еще причины), то все равно можно воспользоваться сгенерированными классами и десериализовать пришедший поток в эти классы с использованием JAXB. rt.jar, надеюсь, в этом проекте доступна полностью?
...
Рейтинг: 0 / 0
java и xml
    #38229635
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miklouhaзадача стоит сделать без сторонних пакетов.
Сторонних относительно чего? JAXWS уже сто лет как в JSE включили. А Apache Common Utils, почему вдруг использовать можно?
...
Рейтинг: 0 / 0
java и xml
    #38229637
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miklouhaда он походу только для символов скобок и т.д. попробуйте напрмер использовать функцию для создания escape последовательности из обычных символов System.out.println(StringEscapeUtils.escapeXml("sdfsd")) не сработает...
Схера бы он ASCII символы эскейпил. Хватит юлить. Покажите какой у вас текст и какие escape последовательности.
...
Рейтинг: 0 / 0
java и xml
    #38229644
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

вот такая строка например ";#1086;ступно SD. О&am "
...
Рейтинг: 0 / 0
java и xml
    #38229665
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miklouhaBlazkowicz,

вот такая строка например ";#1086;ступно SD. О&am "
Код: java
1.
StringEscapeUtils.unescapeXml( ";#1086;ступно SD. О&am ");


Всё нормально:
;#1086;ступно SD. О&am
...
Рейтинг: 0 / 0
java и xml
    #38229696
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

вот черт...там перед такой обработкой надо было сделать replaceAll("&", "&") ...теперь все заработало..
извиняюсь за глупый вопрос тут вы писали "Схера бы он ASCII символы эскейпил." ...не совсем понял что можно эскейпить что нельзя...?
...
Рейтинг: 0 / 0
java и xml
    #38229703
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

т.е. replaceAll("&am p;", "&");
...
Рейтинг: 0 / 0
java и xml
    #38229704
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miklouhaизвиняюсь за глупый вопрос тут вы писали "Схера бы он ASCII символы эскейпил." ...не совсем понял что можно эскейпить что нельзя...?
Вопрос не в том что можно, а что нельзя. Вопрос в том что нужно. Вот реализация метода:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
    public String escape(String str) 
        //todo: rewrite to use a Writer
        StringBuffer buf = new StringBuffer(str.length() * 2);
        int i;
        for (i = 0; i < str.length(); ++i) {
            char ch = str.charAt(i);
            String entityName = this.entityName(ch);
            if (entityName == null) {
                if (ch > 0x7F) {
                    int intValue = ch;
                    buf.append("&#");
                    buf.append(intValue);
                    buf.append(';');
                } else {
                    buf.append(ch);
                }
            } else {
                buf.append('&');
                buf.append(entityName);
                buf.append(';');
            }
        }
        return buf.toString();
    }


По-моему ответ очевиден.
...
Рейтинг: 0 / 0
java и xml
    #38229721
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

спасибо
...
Рейтинг: 0 / 0
java и xml
    #38229770
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miklouhaBlazkowicz,
т.е.
Код: java
1.
replaceAll("&amp;", "&");


Строка с двойным эскейпом. Как же так угораздило?
Подозреваю, что будет работать
Код: java
1.
2.
  StringEscapeUtils.unescapeXml(response.replaceAll("&amp;", "&")); // и так
  StringEscapeUtils.unescapeXml(StringEscapeUtils.unescapeXml(response)); // и так


Тем не менее, решение вышло "со сторонними библиотеками"
...
Рейтинг: 0 / 0
java и xml
    #38229775
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А скорее всего, тут вот это:
Код: java
1.
StringEscapeUtils.unescapeXml(StringEscapeUtils.unescapeHtml(response));


- что, в принципе, JAX-WS и делает
...
Рейтинг: 0 / 0
java и xml
    #38231090
miklouha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivanra,

я так и сделал вчера, все заработало.
...
Рейтинг: 0 / 0
java и xml
    #38231374
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм. Думаю что с ASCII-wrap можно было даже UTF-8 и не заказывать.
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / java и xml
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]