![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
zone51 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 17.2.2006 Репутация: нет Всего: 1 |
Здравствуйте. У меня проблема. Есть код, разбирающий хмл файл
Этот код не срабатывает, как будто файл просто не парсируется-в процедуры не передаютсяя нужные параметры. Подскажите. Спасибо. -------------------- The truth is out there |
|||
|
||||
y3u |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 5 Всего: 13 |
что значит "не срабатывает"? опиши подробнее... и прицепи XMLник...
на вскидку
это неправильно, там массив символов всего документа, думаешь зачем тебе там приходит в параметре int start, int length ? надо делать примерно так
-------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
zone51 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 17.2.2006 Репутация: нет Всего: 1 |
y3u,
Спасибо большое, все получилось ![]() LSD,
А как это? Прямо в одну строку в ретурне и перегонять в строку массив? -------------------- The truth is out there |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Нет, просто вместо:
достаточно:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
zone51, пожалуйста пиши грамотно!
![]() ПС: Переименовал тему "Ошибки парсинга XML файлв, Необходимо разобрацца"->"Ошибки парсинга XML файлв, Необходимо разобраться" |
|||
|
||||
y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 5 Всего: 13 |
...
век живи - век учись там, вобщем-то, так же работает все ![]() Это сообщение отредактировал(а) y3u - 30.12.2006, 13:44 -------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
Hidrag |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 3 Всего: 25 |
Встала задача парсинга XML, в факе почитал статью "Парсинг XML с помощью SAX парсера", все понятно и работает, там пример хмла такой:
а вот как распарсить вот такой файл:
вроде бы тот же самый файл, только тэги и данные на разных строчках и кодировка другая... код из фака который получает стоку данных:
так вот при парсинге этого файла стринг получается состоит из 3-х (трех!!!) строк, то есть уже не строка а текст из трех строчек разделенных символом перевода строки в одном стринге (и как такое возможно? я думал стринг это одна строка), первая строка состоит из символа переноса строки, вторая строка из пробелов и той самой строки которая и нужна, и третья строка из пробелов от края до закрывающего тэга... Пришло две мысли как это вылечить, либо распарсить эту строку и удалить в ней ненужные пробелы и символы переноса строк, второе решение это обработать сам хмльник и удалить в нем все символы переноса строк... но как мне кажется это "корявое" решение, не полдскажете как грамотнее распарсить такой файл? .. и если все же удалять символы переноса строки как правильно сделать? Я сделал так:
но он удалят эти символы как будто через строку... в одной удалит в другой пропустит, что я не так делаю?... -------------------- ![]() |
||||||||
|
|||||||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Это одна строка, но содержащая в себе символы \n. У DOM-парсера есть метод setIgnoringElementContentWhitespace(), но в SAX-парсинге я его не нашел... -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 5 Всего: 13 |
ну, вобщем-то, в сакс модели дже отнормалайзить дерево не получится... поэтому, имхо, вполне себе нормальный выход, зачитывать строку, а потом просто дергать у нее метод trim(), который обрежет все вайтспейсы со строки, в том числе и переносы...
-------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 3 Всего: 25 |
Решил седня проблему так: использовал вместо сакса дом. Трим к строке использовать нельзя, там может храниться фраза а не одно слово, а чтобы убрать все лишнее использовал регулярное выражение, вот такое:
которое обрубает все лишнее в начале и конце строки. Где s полученная строка данных. -------------------- ![]() |
|||
|
||||
y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 5 Всего: 13 |
trim() обрезает все в начале и в конце строки целиком... при чем тут фраза
-------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 3 Всего: 25 |
y3u, Проверил и правда... а я думал он только пробелы удаляет...
-------------------- ![]() |
|||
|
||||
tigerkvv |
|
||||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
Продолжение. Как парсить вот такой файл:
вышеописанный метод
от <userParam> оставляет только "\nParam 1.2\n" и "\nParam 2.2\n" куда пропадают "\nParam 1.1\n" и "\nParam 2.1\n" ? |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
В FAQ есть статья на тему как правильно парсить XML с помощью SAX. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
tigerkvv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
Спасибо за ответ. С той статьей я знакомился и тот код отлично работает для файла из примера, но для моего файла тод код выдает только последнюю строчку из многострочного параметра. Возможно есть что-то в комментариях, но мне их не видно (я зарегистрирован), видно только даты комментариев.
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Там в FAQ не совсем корректный код, более правильно так:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |