powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Экранирование символов в xml
9 сообщений из 9, страница 1 из 1
Экранирование символов в xml
    #39413673
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день!

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

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



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



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

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


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

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

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

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

Мне надо использовать этот текст в качестве атрибута в xml, а если там попадаются эти символы, то xml-ка перестает быть валидной
...
Рейтинг: 0 / 0
Экранирование символов в xml
    #39413926
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Экранирование символов в xml
    #39414529
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

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


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