Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Чтение из XML-файла


Автор: Mikkle 7.5.2010, 22:17
Здравствуйте.
У меня пара вопросов по переносу информации из xml-файла. Файл имеет такую структуру:
Код

<main>
  <CN> a </CN> 
  <Ct> b </Ct> 
  <Place>
    <Reg> c </Reg> 
    <Code> d </Code> 
    <Nm> e </Nm> 
    <Addr>
      <City> f </City> 
      <Street> g </Street> 
      <House> h </House> 
    </Addr>
  </Place>
  <Place>
    <Reg> i </Reg> 
    <Code> j </Code> 
    <Nm> k </Nm> 
    <Addr>
      <City> l </City> 
      <Street> m </Street> 
      <House> n </House> 
    </Addr>
  </Place>
  <Dt> o </Dt> 
</main>

я использую компонент TXMLDocument. С чтением из узлов, которые принадлежат непосредственно главному элементу main проблем не возникает, а вот вложенные подструктуры уже прочитать не могу. Я начинаю считывать так:
Код

 Node:=XMLDocument1.DocumentElement;
 main.CN:=Node.ChildNodes.ChildValues['CN'];
 main.Ct:=Node.ChildNodes.ChildValues['Ct'];

А дальше уже считать данные из <place> не получается. Узлы объявлены так:
Код

 A = record
  city: string;
  street: string;
  house: string;
 end;

 Pls = record
  Reg: string;
  Code: string;
  Nm: string;
  Addr: A;
 end;

 main = record
  CN: string;
  Ct: string;
  Place: Pls;
  Dt: string;
 end;

Подскажите, пожалуйста, как прочитать информацию из "вложенных" деревьев. И еще вопрос: если у меня узел может встречаться в документе несколько раз (как, например, place), как сделать так, чтобы он все эти несколько раз и прочитался?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)