XML JDOM и спецсимволы
От: Sash_net  
Дата: 05.03.08 17:55
Оценка:
При попытке сгенерить документ на основе XML-строки в которой в значениях параметров есть спецсимволы типа # и т.д. а также ' и т.д возникает ошибка JDOMParseException.
Пример строки:

<groups><group gid="11291501078" name="Omar&apos;s Group #2"/></groups>


Есть ли у jdom средства заменить спецсимволы (типа #) и последовательности (типа &apos; ) в строке на стандартные для XML (или jdom) последовательности перед тем как вызывать для нее

Document doc = builder.build(new StringReader(requestString));


Ексцепшн именно в этой строке.

XML получаю извне именно в таком виде как в примере.
Re: XML JDOM и спецсимволы
От: C0s Россия  
Дата: 05.03.08 18:05
Оценка: 1 (1)
Здравствуйте, Sash_net, Вы писали:

S_>При попытке сгенерить документ на основе XML-строки в которой в значениях параметров есть спецсимволы типа # и т.д. а также &apos; и т.д возникает ошибка JDOMParseException.


S_><groups><group gid="11291501078" name="Omar&apos;s Group #2"/></groups>


# — ни разу не спецсимвол
спец. символа два: < и &
в данном случае &apos; — entity, которая должна быть определена. скорее всего, ругается на то, что нет её определения, но я не телепат
Re[2]: XML JDOM и спецсимволы
От: Sash_net  
Дата: 05.03.08 18:34
Оценка:
Здравствуйте, C0s, Вы писали:

C0s># — ни разу не спецсимвол

При наличии только его такой же ексцепшн (или может дело в последовательности #2).

C0s>спец. символа два: < и &

C0s>в данном случае &apos; — entity, которая должна быть определена. скорее всего, ругается на то, что нет её определения, но я не телепат
Как ее определить?

Чуствую напишу заменялку для всех левых значений, типа "&apos;" менять на "&#<код апострофа>" и буду через нее проганять входную строку.

В любом случае — спасибо.
Re[3]: XML JDOM и спецсимволы
От: C0s Россия  
Дата: 05.03.08 18:44
Оценка:
Здравствуйте, Sash_net, Вы писали:

C0s>># — ни разу не спецсимвол

S_>При наличии только его такой же ексцепшн (или может дело в последовательности #2).

очень странно

C0s>>спец. символа два: < и &

C0s>>в данном случае &apos; — entity, которая должна быть определена. скорее всего, ругается на то, что нет её определения, но я не телепат
S_>Как ее определить?

это не твоя забота, а в xmlе, который тебе приходит, должно быть что-то типа
<!DOCTYPE example [
  <!ENTITY apos "&_#_27;">    <!--    здесь на самом деле нет символов подчёркивания, я их вставил, чтобы сообщение на форуме отобразилось -->
]>

где 27 — код апострофа (это я так протелепатил)

S_>Чуствую напишу заменялку для всех левых значений, типа "&apos;" менять на "&#<код апострофа>" и буду через нее проганять входную строку.


не думаю, что это верно
верно, кмк — разобраться, почему тебе приходит неверный xml (либо обнаружить, что что-то не так с jdom)
Re: XML JDOM и спецсимволы
От: Sash_net  
Дата: 05.03.08 20:15
Оценка: +1 :))
Включил логи на сервере
Ошибка заключается в том что строка формируется как
requestString = req.getParameter("xml");
и req чесно возвращает все до следующего амперсенда.
Сорри за
censored
.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.