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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.014 c
8-1120681700
ronyn
2005-07-07 00:28
2005.12.18
Как запустить поиск всей музыки на компе для добавления её в Плей


2-1133467887
sedot
2005-12-01 23:11
2005.12.18
Работа с текстовыми файлами


6-1125860805
Станислав
2005-09-04 23:06
2005.12.18
сетевая игра :)


2-1133482739
vasek
2005-12-02 03:18
2005.12.18
как получить доступ к протектед...


14-1132747769
DiamondShark
2005-11-23 15:09
2005.12.18
Клиенты ICQ





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский