![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
XML с дочерьми .. [D7]
timekiller © (2008-11-10 11:30:00)
if Assigned(XMLd.ChildNodes) then
for a1:=0 to XMLd.ChildNodes.Count-1 do
if Assigned(XMLd.ChildNodes[a1].ChildNodes) then
for a2:=0 to XMLd.ChildNodes[a1].ChildNodes.Count-1 do
if Assigned(XMLd.ChildNodes[a1].ChildNodes[a2].ChildNodes) then
for a3:=0 to XMLd.ChildNodes[a1].ChildNodes[a2].ChildNodes.Count-1 do
if Assigned(XMLd.ChildNodes[a1].ChildNodes[a2].ChildNodes[a3].ChildNodes) then
for a4:=0 to XMLd.ChildNodes[a1].ChildNodes[a2].ChildNodes[a3].ChildNodes.Count-1 do
Пожалуйста, Подскажите как оптимизировать это х..
(Узнать не только количество узлов, но и количество, блин, дочерности узла)
timekiller (2008-11-10 16:50:00) [1]ну чет хочешь доказать - а мне интересно, я ж вроде учусь
Поросенок Винни-Пух (2008-11-10 16:28:00) [2]Зачем тебе аргумент если ты и так счастлив?
timekiller (2008-11-10 16:21:00) [3]Мне продолжить с тобой по душам или предложить тебе всетаки не извращаться надо мной, а привести 1 какой-нибуть аргумент? :)
Поросенок Винни-Пух (2008-11-10 16:11:00) [4]Ну пришлось делать конвертер того парсера, программёр которого люто ненавидел xsd
В итоге получилось:
Один извращенец правит работу другого извращенца.
timekiller (2008-11-10 16:08:00) [5]Ну пришлось делать конвертер того парсера, программёр которого люто ненавидел xsd
Предложил бы не изврат, вместо слова "рекурсия", или еще сам ребёнак? :D
Поросенок Винни-Пух (2008-11-10 15:59:00) [6]изврату ребенка научили. за такое надо давать как за растление малолетних.
timekiller (2008-11-10 15:22:00) [7]не, у вас тревоги никогда не бывает :D это понятно
а вот то что я хотел найти (другим в помощь):
function GetNodeValue(XMLn:IXMLNode;NodeName:String):string;
var i,j:integer;
begin
if Assigned(XMLn.ChildNodes) then
for i:=0 to XMLn.ChildNodes.Count-1 do
if (XMLn.ChildNodes[i].NodeName=NodeName) then
begin
Result:=XMLn.ChildNodes[i].Text;
end else
if Assigned(XMLn.ChildNodes[i].ChildNodes) then
Result:=GetNodeValue(XMLn.ChildNodes[i],NodeName);
end;
brother (2008-11-10 13:32:00) [8]> Все спасибо отбой,
а была тревога? ;)
timekiller (2008-11-10 13:24:00) [9]Все спасибо отбой, на другом форуме подсказали :)
Поросенок Винни-Пух (2008-11-10 12:56:00) [10]а навигационный метод это конечно же не влом. это зашибись.
чо тогда за вопросы?
timekiller (2008-11-10 12:55:00) [11]Хотя так влом работать с XPath, строками и pos и чтобы найти чтото..
Поросенок Винни-Пух (2008-11-10 12:48:00) [12]конечно есть. xpath он и есть xpath.
timekiller (2008-11-10 12:45:00) [13]Подскажите тогда лучше как сделать поиск по нодам? Есть ли какие-нибудь варианты перемещений по координатам или по путям XPath?
Есть ли функция наподобие:
if searchnode(XMLDocument1).name='2я_нода_в_корне' then showmessage('1') else
if searchnode(XMLDocument1).name='139я_нода_в_14узле' then showmessage('5');
?
timekiller (2008-11-10 12:37:00) [14]1<1>
2 <2>
3 <3>
4 <4>
5 <5>
6 <6>
6 </6>
5 </5>
4 </4>
3 </3>
2 </2>
1</1>
Количество вложенностей, не? у 1 - 5 вложенностей, у 4 - 2
timekiller (2008-11-10 12:37:00) [15]1<1>
2 <2>
3 <3>
4 <4>
5 <5>
6 <6>
6 </6>
5 </5>
4 </4>
3 </3>
2 </2>
1</1>
Количество вложенностей, не? у 1 - 5 вложенностей, у 4 - 2
Palladin (2008-11-10 12:26:00) [16]и что же в этом XML является col'ами ?
timekiller (2008-11-10 12:17:00) [17]
<name>
<Containing>
<lot>
<bla>
<blabla>
<blablalalaaaaaa>
<itsTheEnd>
</itsTheEnd>
</blablalalaaaaaa>
</blabla>
</bla>
</lot>
</Containing>
</name>
............
Как определить номер вложенной ветки <itsTheEnd>? Может быть .. это называется номер вложенности?
ps: циклы делаются одинаково, но я спросил не про циклы а про Count для цикла, ну например если очень грубо:
StringGrid1.RowCount = XmlDocument1.ChildNodes.Count
StringGrid1.ColCount = ?
Поросенок Винни-Пух (2008-11-10 12:02:00) [18]циклы делаются одинаково
timekiller (2008-11-10 11:41:00) [19]это понятно
есть допустим ChildNodes.Count-1 - цикл по "У" сам напрашивается
а цикл по "Х" как сделать, у кого узнать Count?
Поросенок Винни-Пух (2008-11-10 11:36:00) [20]циклы, рекурсия, функции....