powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Проблема с амперсантом в XQuery
11 сообщений из 11, страница 1 из 1
Проблема с амперсантом в XQuery
    #37059419
dasx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При помощи XQuery генерирую HTML отчет с XML данных. В определённых местах выходного HTML необходимо вставить пробел при помощи escape-последовательности   (как все уже знают, иначе он просто не вставится, если он не среди текста, а сам по себе). Но я не могу просто написать эту последовательность, так как XQuery сам превратит её в обычный пробел.
Сначала я подумал, что это вовсе и не проблема, напишу   и будет мне счастье. Но процессор XQuery оказался слишком умным. Последовательность & и эквивалентную ей & он передаёт на выход в прямом виде, а не заменяет амперсантом (даже не в прямом, а всегда &, по крайней мере, у меня так). Классная ловушка я Вам скажу. Понять величайший замысел разработчиков мне не дано, но может кто-то уже сталкивался с подобными проблемами и может помочь?!
...
Рейтинг: 0 / 0
Проблема с амперсантом в XQuery
    #37059425
dasx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощение, переформатирую сообщение, немного облажался:

При помощи XQuery генерирую HTML отчет с XML данных. В определённых местах выходного HTML необходимо вставить пробел при помощи escape-последовательности   (как все уже знают, иначе он просто не вставится, если он не среди текста, а сам по себе). Но я не могу просто написать эту последовательность, так как XQuery сам превратит её в обычный пробел.
Сначала я подумал, что это вовсе и не проблема, напишу   и будет мне счастье. Но процессор XQuery оказался слишком умным. Последовательность & и эквивалентную ей & он передаёт на выход в прямом виде, а не заменяет амперсантом (даже не в прямом, а всегда &, по крайней мере, у меня так). Классная ловушка я Вам скажу. Понять величайший замысел разработчиков мне не дано, но может кто-то уже сталкивался с подобными проблемами и может помочь?!
...
Рейтинг: 0 / 0
Проблема с амперсантом в XQuery
    #37059728
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dasxПри помощи XQuery генерирую HTML отчет с XML данных Вы уверены, что речь идет об XQuery, а не об XSL ?

PS. disable-output-escaping ?
...
Рейтинг: 0 / 0
Проблема с амперсантом в XQuery
    #37059851
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dasx,

Кажется, понял о чем речь. С XQuery знаком теоретически-поверхностно. Дело в том что XQuery отдает результат в формате XML (сериализация method="xml").

Т.к. выражение
Код: plaintext
<elem>&nbsp;</elem>
c точки зрения XML недопустимо, то и результат такого добиться нельзя...

PS. Можно ли изменить method на html или text не знаю...
PPS. В XML можно сделать выражение выше допустимым с помощью <!ENTITY nbsp "#20">, но... думаю здесь это не поможет.
...
Рейтинг: 0 / 0
Проблема с амперсантом в XQuery
    #37060010
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в таких случаях пишу неразрывный пробел - alt+0160 на цифровой клаве.
...
Рейтинг: 0 / 0
Проблема с амперсантом в XQuery
    #37061025
dasx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
refregВы уверены, что речь идет об XQuery, а не об XSL ?
Да именно так. По правде говоря, я только на этой неделе начал изучать XQuery и XSLT. Насколько я понял, то второе мне больше подходит. Но всё дело в том, что выполняться эти запросы будут при помощи модуля Qt “QtXmlPatterns”. Но реализация XSLT в нём ещё очень сыровата, а XQuery вроде более-менее на уровне.

refregВ XML можно сделать выражение выше допустимым с помощью <!ENTITY nbsp "#20">, но... думаю здесь это не поможет.
Можно подробнее?...

В принципе, я нашёл способ, как обойтись вообще без пробела, но от этого интерес к вопросу не угас. Тем более, что в дальнейшем может вновь возникнуть подобная ситуация …
Ещё один вопрос. Знаю, что при помощи XSLT можно генерировать текстовые документы, в том числе и RTF (имеется ввиду, что его внутренняя структура не бинарная, а основана на обычном тексте, как тот же XML). Можно ли аналогичное сделать с помощью XQuery?
...
Рейтинг: 0 / 0
Проблема с амперсантом в XQuery
    #37061048
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dasxrefregВ XML можно сделать выражение выше допустимым с помощью <!ENTITY nbsp "#20">, но... думаю здесь это не поможет.Можно подробнее?...Не valid и не well-form XML документ:
Код: plaintext
1.
<?xml version="1.0"?>
<root>&nbsp;</root>

И valid и well-form XML документ:
Код: plaintext
1.
2.
3.
4.
5.
<?xml version="1.0"?>
<!DOCTYPE root [
  <!ELEMENT root (#PCDATA)>
  <!ENTITY nbsp "#20">
]>
<root>&nbsp;</root>
...
Рейтинг: 0 / 0
Проблема с амперсантом в XQuery
    #37061050
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dasxЕщё один вопрос. Знаю, что при помощи XSLT можно генерировать текстовые документы, в том числе и RTF (имеется ввиду, что его внутренняя структура не бинарная, а основана на обычном тексте, как тот же XML). Можно ли аналогичное сделать с помощью XQuery?Может и можно... Но XQuery - это язык запросов к XML документу. То бишь с его помощью делают выборку из XML. Например, "нужны все книги 2010 года издания" - XQuery их отдаст в твою прогу на Qt. А сделать из него HTML или RTF, это все равно что написать текстовый редактор на SQL-сервере, трудно, но сделать можно.
...
Рейтинг: 0 / 0
Проблема с амперсантом в XQuery
    #37064428
_Андрей_М
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В xml в качестве неразрывного пробела используйте   (если я правильно понял о чём речь).
...
Рейтинг: 0 / 0
Проблема с амперсантом в XQuery
    #37064439
_Андрей_М
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да, посоветовал.  
...
Рейтинг: 0 / 0
Проблема с амперсантом в XQuery
    #37064447
_Андрей_М
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да чего же не вставляется-то! амперсант, решётка, икс, A, ноль, точка с запятой.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Проблема с амперсантом в XQuery
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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