Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Экранирование символов в xml / 9 сообщений из 9, страница 1 из 1
03.03.2017, 14:25
    #39413673
Alex__kK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов в xml
Всем добрый день!

Такой вопрос, а есть ли в постгресе готовая функция для экранирования символов <,>, &, ', " для xml?
Ну то есть есть строка, в которой встречаются эти символы, и их нужно заменить, чтобы при вставке этой строки в xml в качестве атрибута все было нормально. Понятно, что можно сделать 5 replace, но может есть уже что-то готовое?

В Оракле например есть:
Код: sql
1.
select DBMS_XMLGEN.CONVERT('<''трам-пам-пам&&&>"') from dual;



которая вернет:
Код: sql
1.
&lt;&apos;трам-пам-пам&amp;&amp;&amp;&gt;&quot;



В постгресе есть что-то подобное, или реплэйсы наше все?
...
Рейтинг: 0 / 0
03.03.2017, 14:51
    #39413688
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов в xml
Alex__kK,

Код: sql
1.
2.
SELECT xmlelement(name assa 
	,'<''трам-пам-пам&&&>"');


по ходу оно xml--эскейпится

https://www.postgresql.org/docs/current/static/functions-xml.html
...
Рейтинг: 0 / 0
03.03.2017, 14:56
    #39413693
Alex__kK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов в xml
qwwq,

оно апострофы и кавычки не берет и теги с названиями добавляет...
...
Рейтинг: 0 / 0
03.03.2017, 15:18
    #39413715
Legushka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов в xml
когда надоест экранировать)
Код: sql
1.
SELECT xmlelement(name assa ,$$<''трам-пам-пам&&&>"$$);
...
Рейтинг: 0 / 0
03.03.2017, 15:25
    #39413721
Alex__kK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов в xml
Legushka,

И чем это отличается от того что qwwq привел? Результат такой же как и в его примере.
...
Рейтинг: 0 / 0
03.03.2017, 16:40
    #39413827
p2.
p2.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов в xml
Alex__kKоно апострофы и кавычки не берет и теги с названиями добавляет...зачем эскейпить, если использовать не как xml?
...
Рейтинг: 0 / 0
03.03.2017, 16:48
    #39413834
Alex__kK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов в xml
p2.,

Мне надо использовать этот текст в качестве атрибута в xml, а если там попадаются эти символы, то xml-ка перестает быть валидной
...
Рейтинг: 0 / 0
03.03.2017, 19:04
    #39413926
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов в xml
Alex__kKp2.,

Мне надо использовать этот текст в качестве атрибута в xml, а если там попадаются эти символы, то xml-ка перестает быть валидной

а что мешает собирать xml ф-ями, которые гарантируют валидность итога ?

Код: sql
1.
2.
3.
4.
5.
6.
SELECT
	xmlelement(name assa, xmlattributes('<''трам-пам-пам&&&>"' as "myattr")) --::text
	,xml_is_well_formed(
		xmlelement(name assa, xmlattributes('<''трам-пам-пам&&&>"' as "myattr")) ::text
		)
	;
...
Рейтинг: 0 / 0
06.03.2017, 10:16
    #39414529
Alex__kK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экранирование символов в xml
qwwq,

Дело в том, что у меня есть довольно большой шаблон xml-ки, в который мне, в пару помеченных мест, надо вставить по аттрибуту, причем название аттрибута может быть разное, поскольку шаблон передается мне извне, поэтому пересобирать xml-ку не вариант. А к тому же xmlelement не экранирует апостроф и двойные кавычки. Вообщем я думаю реплэйсы наше все.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Экранирование символов в xml / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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