Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизЧтение данных из XML Найти похожие ветки
← →
Mikkle (2010-05-08 10:16) [0]дравствуйте.
У меня пара вопросов по переносу информации из xml-файла. Файл имеет такую структуру:
<main>
<CN> a </CN>
<Ct> b </Ct>
<Place>
<Reg> c </Reg>
<Cod> d </Cod>
<Nm> e </Nm>
<Addr>
<City> f </City>
<Street> g </Street>
<House> h </House>
</Addr>
</Place>
<Place>
<Reg> i </Reg>
<Cod> j </Cod>
<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), как сделать так, чтобы он все эти несколько раз и прочитался?
← →
_Юрий © (2010-05-08 11:00) [1]
> Подскажите, пожалуйста, как прочитать информацию из "вложенных"
> деревьев.
var
ChildNode: IXMLNode;
...
for I := 0 to Node.ChildNodes.Count - 1 do
begin
ChildNode:=Node.ChildNodes[I];
if ChildNode.NodeName = "Place" then
Reg:=ChildNode.Attributes["Reg"]
← →
Slym © (2010-05-11 18:51) [2]Mikkle (08.05.10 10:16)
TXMLDocument
отстой....
http://yandex.ru/yandsearch?text=XPathdoc:=CreateOleObject("Msxml2.DOMDocument") as IDispatch;
doc.load("doc.xml");
CN:=doc.selectSingleNode("main/CN").Text;
Ct:=doc.selectSingleNode("main/Ct").Text;
Nodes:=doc.selectNodes("main/Place");
for i:=0 to Nodes.length-1 do
begin
city:=Nodes.item[i].selectSingleNode("Addr/City")
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.057 c