Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.02.2011, 12:00
squirrel04 squirrel04 вне форума
Прохожий
 
Регистрация: 04.02.2011
Сообщения: 6
Репутация: 12
По умолчанию XML и пространства имен

Доброго времени суток.
Я заблудилась в трех пространствах имен Задача получить значения из XML-файла. Проблема в следующем:

Код:
<ESADout_CU:ESADout_CU DocumentModeID="1006107E"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:catESAD_cu="urn:customs.ru:CUESADCommonAggregateTypesCust:5.0.0" 
xmlns:cat_ru="urn:customs.ru:CommonAggregateTypes:5.0.0" 
xmlns:ESADout_CU="urn:customs.ru:Information:CustomsDocuments:ESADout_CU:5.0.0" 
xsi:schemaLocation="urn:customs.ru:Information:CustomsDocuments:ESADout_CU:5.0.0 C:\alsy_repository\trunk\DT\xsd\ESADout_CU.xsd">
	<cat_ru:DocumentID>a</cat_ru:DocumentID>
	<ESADout_CU:CustomsProcedure>aa</ESADout_CU:CustomsProcedure>
    ...
	<ESADout_CU:ESADout_CUGoodsShipment>
		<catESAD_cu:OriginCountryName>a</catESAD_cu:OriginCountryName>
		...
		<ESADout_CU:ESADout_CUConsignor>
			<cat_ru:OrganizationName>a</cat_ru:OrganizationName>
			...
			<cat_ru:Address>
				<cat_ru:PostalCode>a</cat_ru:PostalCode>
				...
			</cat_ru:Address>
Обращаюсь к элементу PostalCode следующим образом:
s:=UVD.ESADout_CUGoodsShipment.ESADout_CUDeclarant .Address.ChildNodes.FindNode('PostalCode',pcat_ru) .text;
s - строка
UVD - ESADout_CU.LoadESADout_CU(FileName)
pcat_ru='urn:customs.ru:CommonAggregateTypes:5.0.0 ';
Выдает ошибку, при том, что элементы CustomsProcedure, OrganizationName возвращает корректно. Что я делаю не так?
Ответить с цитированием
  #2  
Старый 04.02.2011, 15:31
squirrel04 squirrel04 вне форума
Прохожий
 
Регистрация: 04.02.2011
Сообщения: 6
Репутация: 12
По умолчанию

Странно, но такая штука работает.
Код:
if UVD.ESADout_CUGoodsShipment.ESADout_CUDeclarant.ChildNodes.FindNode('Address',pcat_ru)<>nil then begin
  tempNode:=UVD.ESADout_CUGoodsShipment.ESADout_CUDeclarant.ChildNodes.FindNode('Address',pcat_ru);
  s:=tempNode.ChildNodes.FindNode('PostalCode',pcat_ru).text;
  end;
Всех родителей из другого пространства имен нужно сначала найти что ли? А как-то более по-человечески это нельзя сделать?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:58.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter