Правильный способ хранить URL в XML? - PullRequest
2 голосов
/ 04 августа 2011

Я храню данные в XML-файле. В одном из узлов мне нужно сохранить URL-адрес, который состоит из специального символа, такого как & я использовал & вместо & и xml не показывает ошибки, но когда я выполнял SAX-разбор значения String, возвращаемогоузел - это строка после &,

Я предполагаю, что способ хранения URL-адреса неправильный.

Какой правильный способ хранения URL-адреса в xml.

В настоящее время я сохраняю как,

<param>http://www.example.com?param1=abc&amp;v=1</param>

XML не содержит ошибок, но SAX-парсер не вернет весь URL.

РЕДАКТИРОВАТЬ: У меня точка с запятой после & в URLЯ пропустил это в первый раз.

Решение: Это была не проблема с XML, а то, как я обрабатывал XML в XMLHandler,
Я использовал новую строку (ch,начало, длина);
Теперь изменено на stringBuilder ();

Ответы [ 3 ]

3 голосов
/ 04 августа 2011

Ваш XML правильный (теперь, когда вы добавили точку с запятой), поэтому вы, возможно, неправильно используете SAX API.

Возможно, вы увидите следующий ответ: Разбор и кодировка Sax

2 голосов
/ 04 августа 2011

Вам нужна точка с запятой (;) после &amp:

<param>http://www.example.com?param1=abc&amp;v=1</param>

РЕДАКТИРОВАТЬ: Хорошо, теперь, когда это немного прояснилось, я думаю, что проблема в том, что SAX недолжен вернуть всю строку в одном characters() вызове.См. этот вопрос для получения дополнительной информации о том, как решить эту проблему.

0 голосов
/ 04 августа 2011

если ampv является параметром, то:

<param>http://www.example.com?param1=abc&amp;ampv=1</param>

иначе, если v является параметром:

<param>http://www.example.com?param1=abc&amp;v=1</param>
...