Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Символы "<" и ">" в IXMLDocument   Найти похожие ветки 

 
Murad ©   (2004-04-23 18:05) [0]

Всем добрый день... проблема такая... Сохраняю текст в узел XML файла используя IXMLDocument... текст содержит символы "<"
и ">" при сохранении IXMLDocument заменяет их на < и > .  Как этого избежать ?


 
Murad ©   (2004-04-23 18:06) [1]

...заменяет их на lt b rt


 
Murad ©   (2004-04-23 18:07) [2]

пардон
...заменяет их на lt b gt c амперсандами


 
Тимохов ©   (2004-04-23 18:12) [3]


> Как этого избежать ?

Вроде никак.
Т.е. может и можно (често не знаю).
Но наличие указанных сиволов в тексте противоречит сепецификации XML. Вернее противоречит <, а > заменяется на > за компанию. Также недопустимым является сочетание "]]>".

Вопрос, а чем вам это мешает?
Ведь при следующем чтении все обратно поменятеся на < и >?


 
Тимохов ©   (2004-04-23 18:18) [4]

Вы же если пишите html экранируете < на <
В xml та же ситуация.


 
Murad ©   (2004-04-23 18:20) [5]

2 Тимохов
 У меня в этом узле должен лежать HTML


 
Тимохов ©   (2004-04-23 18:25) [6]

все-таки не понимаю что-вам не нравится.

1. есть спецификация xml. эта спецификация запрещает иметь неэкранированный символ <.
2. т.е. в файле хранится <, а в памяти парсера этот символ заменяется на <.
3. для того, чтобы хранить любые символы в xml предусмотрено следующие "<![CDATA[". В этой секции можно хранить все что угодно, хоть <. Нельзя только иметь сочетание
"]]>".
4. Допустим вы как-то добъектесь того, чтобы вне секции <![CDATA[ хранился неэкранированный <. Как вы себе представляете парсер должен понимать, что это не начало тэга, а просто символ. Поэтому и введена спецификация xml.


 
Тимохов ©   (2004-04-23 18:26) [7]

Поправка

> 2. т.е. в файле хранится апперсенд+lt;,


 
Тимохов ©   (2004-04-23 18:30) [8]

xml документ, который хранит неэкранированный символ < не является корректным.
можете сами проверить - напишите
<a>
abc<dt
</a>

Попробуйте открыть его лбой прогой, которая умеет открывать xml (у меня это internet explorer).
Будет ошибка.


 
Murad ©   (2004-04-23 18:31) [9]

А с CDATA у меня и проблема... этот раздел не получается добавить в конкретный узел... так ведь?


 
Тимохов ©   (2004-04-23 18:34) [10]


> Murad ©   (23.04.04 18:31) [9]
> А с CDATA у меня и проблема... этот раздел не получается
> добавить в конкретный узел... так ведь?

Почему.
Спецификации xml это не противоречит. Значт используемая вами объектная модель должна это делать (я так понимаю, что это парсер от macrosoft). Изучайте.

Все-таки.
Ответте на вопрос: чем вам не нравится наличие сиволов апперсенд+lt; в тексте? Вы же все равно этот текст читатете тем же парсером, а он заменить это на <.


 
Murad ©   (2004-04-23 18:38) [11]

2Тимохов
 1. Метод CreateNode(...NodeType ...) есть только у IXMDocument
    и нету у IXMLNode
 
 2. Суть следующая - есть XML документ, который используя XSLT
    преобразуется в HTML... причем в этом документе есть узел
   (должен быть) который не преобразуется, а  весь его код  
   (HTML) должен попадать в выходной документ.


 
Тимохов ©   (2004-04-23 18:43) [12]


> 2Тимохов
>  1. Метод CreateNode(...NodeType ...) есть только у IXMDocument
>     и нету у IXMLNode

Смотрите внимательнее.
Я когда-то пользовался msxml. Сейчас на память не помню.
Если не ошибаюсь, вы дожны сначала создать node методом createnode, а затем его добавить в детей другого нода. Практически уверен, что это так. С cdata надо работать таким же образом.


 
Murad ©   (2004-04-23 18:48) [13]

Спасибо... буду надеяться что так получиться, хотя это как-то странно... просто узел можно создать, а узел определенного типа - через документ...


 
Тимохов ©   (2004-04-23 18:51) [14]


> Murad ©   (23.04.04 18:48) [13]

Да меня тоже удивлял этот момент.

Вы все-таки подумайте, может не надо вам никакой cdata. Ведь в html неэкранированный < тоже не корректен, при этом < html прекрасно понимает.
Подумайте, есть ощущение, что вы не там копаете.


 
Murad ©   (2004-04-23 19:00) [15]

нет... в этом плане я все верно делаю... спасибо... методы нашел... ща попробую заюзать


 
Murad ©   (2004-04-23 19:03) [16]

кстати, а каким образом в элемент CDATA добавлять текстовое содержимое... неужели надо добавлять текст как бинарный поток ?
при попытке использовать SetText или SetValue - ругается


 
Тимохов ©   (2004-04-23 19:08) [17]

Сильно не уверен в правоте ваших действий :((


 
Murad ©   (2004-04-23 19:10) [18]

На каком основании :)))?


 
Тимохов ©   (2004-04-23 19:12) [19]


> Murad ©   (23.04.04 19:10) [18]

На том, что вы считаете, что спрашиваете только вы здесь :))
Я задал вопрос: как вы собираетесь хранить символ "<" в html? Вы на него ответа не дали. Как ответ дадите, все сами поймете.


 
Murad ©   (2004-04-23 19:14) [20]

Видимо я что-то не верно пояснил... у меня все получилось... спасибо вам большое... щас уже убегаю... если есть интерес в понедельник могу подробнее рассказать ... Murad@newmail.ru


 
Тимохов ©   (2004-04-23 19:17) [21]

Видимо...



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.034 c
3-1081686065
kaif
2004-04-11 16:21
2004.04.11
Уникальность Case Insensitive


1-1082547148
Axil
2004-04-21 15:32
2004.04.11
Общий скрол окна и его фрейма


1-1082700177
webpauk
2004-04-23 10:02
2004.04.11
OnClick


3-1079192109
ST
2004-03-13 18:35
2004.04.11
Номер записи


3-1079429085
Rule
2004-03-16 12:24
2004.04.11
Вопрос по поиску без учета регистра