Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Вниз

IXMLNode ошибка доступа при получении ChildNodes   Найти похожие ветки 

 
31512 ©   (2005-11-17 12:57) [0]

Здравствуйте.
Есть такой вот XML файл:

<?xml version="1.0" encoding="windows-1251" ?>
<LINKTABLE>
   <LINKS code="PARENT" objtype="MATERIAL_FOLDER" rs="RS1" field="ID_PARENT" />
   <LINKS code="FOLDERS" objtype="MATERIAL_FOLDER" rs="RS2" field="ID_CHILD" />
   <LINKS code="MATERIALS" objtype="MATERIAL" rs="RS3" field="ID_MATERIAL" />
   <LINKS code="_PROPERTIES_" objtype="MATERIAL_FOLDER_PROPERTY" rs="RS4" field="ID_SPROPERTY" >
<SAVE cn="CN1">
 <BEFORESAVE/>
 <INSERT/>
 <UPDATE/>
 <DELETE>DELETE FROM SMATERIALPROP WHERE ID_TMATERIAL={_OID_};</DELETE>
 <AFTERSAVE/>
</SAVE>
   </LINKS>
   <LINKS code="PROVIDERS" objtype="CONTRACTOR" rs="RS5" field="ID_PROVIDER">
<SAVE cn="CN1">
 <BEFORESAVE>
    DELETE FROM LTMATERIAL_CONTRACTOR WHERE ID_TMATERIAL={_OID_};
 </BEFORESAVE>
 <INSERT>
    INSERT INTO LTMATERIAL_CONTRACTOR (ID_TMATERIAL, ID_CONTRACTOR) VALUES ({_OID_}, {_LOID_});
 </INSERT>
 <UPDATE>
   INSERT INTO LTMATERIAL_CONTRACTOR (ID_TMATERIAL, ID_CONTRACTOR) VALUES ({_OID_}, {_LOID_});
 </UPDATE>
 <DELETE/>
 <AFTERSAVE/>
</SAVE>
    </LINKS>
   <LINKS code="PLACES" objtype="STORAGE_PLACE" rs="RS6" field="ID_PLACE"><SAVE cn="CN1"><BEFORESAVE>DELETE FROM LTMATERIAL_SPLACE WHERE ID_TMATERIAL={_OID_};</BEFORESAVE><INSERT>INSERT INTO LTMATERIAL_SPLACE (ID_TMATERIAL, ID_SPLACE) VALUES ({_OID_}, {_LOID_});</INSERT><UPDATE>INSERT INTO LTMATERIAL_SPLACE (ID_TMATERIAL, ID_SPLACE) VALUES ({_OID_}, {_LOID_});</UPDATE><DELETE/><AFTERSAVE/></SAVE></LINKS>
   <LINKS code="UNIT" objtype="UNIT" rs="RS1" field="ID_UNIT" />
   <LINKS code="AUNIT" objtype="UNIT" rs="RS1" field="ID_AUNIT" />
   <LINKS code="CATEGORY" objtype="MATERIAL_FOLDER" rs="RS1" field="IDCATEGORY" />
</LINKTABLE>



Без проблем получаю первый тэг <LINKTABLE>
А вот при попытке спросить у него ChildNodes получаю Access violation


 for i:=0 to LinksNode.ChildNodes.Count - 1 do <-Access violation
   begin
     Node := LinksNode.ChildNodes[i];
     if StringIs(LINK_NODE_NAME, Node.NodeName) then
        Add(Node) else
     if StringIs(INCLUDE_NODE_NAME, Node.NodeName) then
         LoadInclude(Node) else continue;
   end;


Тоже самое без проблем приходит с другиси XML. Полагаю, что какая-то ошибка в самой Delphi. Перепробовал всё. Не могу найти причину возникновения ошибки. Помогите пожалуйста.


 
31512 ©   (2005-11-17 13:32) [1]

Странно... Перевёл получение первого тэга <LINKTABLE> не от TXMLDocument, а от IXMLDocument и всё работает хорошо.


 
Reindeer Moss Eater ©   (2005-11-17 16:03) [2]

Без проблем получаю первый тэг <LINKTABLE>
А вот при попытке спросить у него ChildNodes получаю Access violation


Это потому, что тебе только кажется, что ты получил <LINKTABLE>
На самом деле ты получил nil
Поэтому и AV


 
31512 ©   (2005-11-19 09:22) [3]


> Reindeer Moss Eater ©   (17.11.05 16:03) [2]

Может я чего-то не понимаю, но я проверял: указатель на соответсвующий IXMLNode (LinksNode) не null. К ряду свойств доступ имеется, а вот именно к ChildNodes и ещё к нескольким -Delphi exception. NodeName, например, берётся без проблем, а вот OwnerDocument уже фигушки.


 
Polevi ©   (2005-11-20 08:03) [4]

значит указатель ссылается не туда



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

Форум: "Основная";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.015 c
4-1129555422
kolos_rus
2005-10-17 17:23
2005.12.18
Как создать панель на рабочем столе, чтобы она не пере


4-1129706286
Idx
2005-10-19 11:18
2005.12.18
Как компонент сделать прозрачным?


2-1132726445
AndreyAR
2005-11-23 09:14
2005.12.18
Не виден сервер


8-1121181725
MxQ
2005-07-12 19:22
2005.12.18
Управление воспроизведением звука


14-1132834302
Sergey13
2005-11-24 15:11
2005.12.18
А чего интересного есть на WAP?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский