XML: как найти сумму по атрибуту? #157021


#0 by WiFi
Ясно, что можно перебрать и просуммировать. А есть метод, который возвращает сумму результата? По аналогии с Тз.Итог("Сумма"). Например, имеем sample.xml: <root> <entry summa=123> <entry summa=623> <entry summa=525> </root> Хочется что-то типа такого: xmlDoc.Sum("summa").
#1 by romix
Подобная функция, где бы она ни была реализована, по любому будет перебирать информацию в XML, и реализовать ее имхо несложно (4-5 строк кода).
#2 by WiFi
мог бы поспорить с тобой ;) но хотелось бы поближе к сабжу... :) Видишь ли, дальше за методом Итог пойдет метод Сортировать, Свернуть и т.д. По-твоему мне их надо все реализовать :) Скажу по секрету, что я тоже к этому склоняюсь. Сейчас читаю xsl-преобразования... мне они больше напоминают геморой, чем инструмент для извлечения (и преобразования) данных.
#3 by Obed
Думал в сказку попал?
#4 by smaharbA
И выиграеш ;) Счас
#5 by ИМХО
Скуль как-то умеет извращаться с данными из хмл со всеми вытекающими селектами, гроупами и ордерами. Сам никогда не делал, но могу посоветовать копать в эту сторону
#6 by smaharbA
Это скрипт - ... set xmlDoc=createobject("Microsoft.XMLDOM") xmlDoc.async = false xmlDoc.load("C:ScriptsApplicationXMLdoc.xml") i=0 set parents= xmlDoc.lastChild set nodes= parents.getElementsByTagName("sa") for i=0 to nodes.length-1    set nodedoc= nodes.item(i).getElementsByTagName("Docs")    for k=0 to nodedoc.length-1        set docf= nodedoc.item(k).getElementsByTagName("docf")        for l=0 to docf.length-1            set root= docf.item(l).getElementsByTagName("root")            for m=0 to root.length-1                set entry= root.item(m).getElementsByTagName("entry")                for n=0 to entry.length-1                    msgbox "" & entry.item(n).nodeName & " + " & entry.item(n).getAttribute("summa")                next            next        next    next next ... А это файл - ... <?xml version="1.0" encoding="windows-1251"?> <parente> <sa>    <Docs>        s="sdfgsdgfsdf"        <docf>            s=klslsdkjdlskj            <root>                <entry summa='123'/>                <entry summa='623'/>                <entry summa='525'/>            </root>        </docf>    </Docs>    <Docs>        s="Ля-Ля-Ля"    </Docs> </sa> <sb>    <Docs>        s="sdfgsdgfsdf"    </Docs>    <Docs>        s="Ля-Ля-Ля"    </Docs> </sb> </parente> ... Конечно это тупо, но есть много методов хороших и разных ;)
#7 by Obed
Во задвинул.....
#8 by smaharbA
Надо DOM1 и DOM2 (отчасти) читать, кстати савсем не обязательно Microsoft.XMLDOM, можно и IE, или Фокс, или Оперу...
#9 by WiFi
- это мысль :) Вчера наткнулся на аналогичный пример. Прикольно :)
#10 by WiFi
:))) да, думал ;) Придется самому сказку делать :)
#11 by WiFi
ясно, что такой вариант работает, но хочется что-то поизящней ;) Потому и написал...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С