Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Работа с MS Office > ковычки в поле Word'а отрезают часть данных |
Автор: nicotin 15.11.2010, 08:14 |
Работаю над автоматизацией создания ворд документа из xml В некоторых случаях использую вордовские поля (field) для обработки и показа текста. Иногда из xml документа приходит строка, содержащая двойные кавычки. Одинарные тоже попадают, но с ними проблем нет, а вот с двойными есть. Если мне надо создать букмарку (их можно использовать как переменные внутри документа), то я пишу {SET varName "value"}. Потом, при вызове этой букмарки ({varName}) я получу ее значение, т.е. value Если же в значении есть двойная кавычка, то все содержимое после нее отрезается. Вот пример проблемы: 1. ![]() 2. ![]() 3. ![]() На деле, мне надо использовать другое поле, но там такое же поведение в кавычками. Это поле я использовал для демонстрации проблемы. Как мне добиться того, чтобы содержимое, какие бы в нем символы ни были, обрабатывалось полностью? |
Автор: Akina 15.11.2010, 08:20 |
Кавычки, которые составляют содержимое, следует удваивать. Обрамляющие - не трогай. |
Автор: nicotin 15.11.2010, 08:26 | ||
То есть вместо двойной кавычки использовать две одинарные вместе? Или две двойные вместе? Я попробовал с двумя двойными - все равно отрезает... Две одинарные взамен одной двойной - может это и выход. Но выглядят они немного иначе. В зависимости от шрифта различаются от двойных сильнее или слабее.. Пойдет только на крайний случай. |
Автор: nicotin 15.11.2010, 09:20 |
не работает, может я что не так понял, или кавычки не те?![]() |
Автор: Akina 15.11.2010, 09:32 |
Именно. Если не срабатывает - попробуй стандартный квотинг обратным слешем. Если и это не поможет - попробуй почитать справку по теме. |
Автор: nicotin 15.11.2010, 10:09 |
![]() Остаются бекслеши, но кавычки стали пролазить. Я это пробовал, но че-то не написал на форуме. Может какой глобальный параметр управляет тем, нужно ли убирать бекслеши? |
Автор: nicotin 15.11.2010, 11:25 |
на форуме майкрософта посоветовали вместо кавычек вставлять { QUOTE 34} - работает. Только мне не подходит :( |
Автор: Akina 15.11.2010, 11:59 |
Мне на самом деле непонятно, почему нужно обязательно переть эти кавычки туда, где они порождают кучу геморроя. Имена букмарков вполне потерпят, если ты заменишь проблемный символ на что-то ещё. |
Автор: nicotin 15.11.2010, 12:55 |
Приложение состоит из механизма преобразования xml в wordml. Одна часть системы трансформирует xml в wordml на основе информации и стилях из второй части - шаблона, который есть специальный вордовский документ. Так вот предпочтительно что-то менять именно в шаблоне, нежели в трансформере. Тем более не допускается какой-либо препроцессинг. Поэтому я сначала поискал способы в ворде это обойти, но видимо, буду править трансформер, чтобы кавычки не лезли из исходного xml |