Обработка Данных Из Xml На Javascript @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 4 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
Petrovi4
новый человек
0
Сообщения: 6
Зарегистрирован: 07.08.07
Заголовок сообщения: Обработка Данных Из Xml На Javascript
Сообщение Добавлено: 7 Август 2007, 09:11:47 
Я с помощью JavaScript генерирую страницу html из xml и xsl. Получается список отсортированных записей(id### - шт.). Например

id124-12
id124-18
id132-8

После получения такой страницы я хочу суммировать например все значения id124 (в приведенном примере получается 18+12=30)
Как мне на JavaScript перебрать все значения по строкам и суммировать их или можно это сделать средствами XSLT в цикле for-each?
Подскажите пожалуйста

PS

вот код xml файла test.xml":
Код:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?xml-stylesheet type="text/xsl" href="XSLTFile.xsl"?>
 <tag1>
  <tag2> 
    <tag3 id="1321" number="72" />
    <tag3 id="1337" number="322" />
    <tag3 id="1321" number="69" />
    <tag3 id="1337" number="331" />
    <tag3 id="1337" number="28" />
    <tag3 id="1321" number="74" />
    <tag3 id="1337" number="37" />
    <tag3 id="1321" number="63" />
    <tag3 id="1321" number="4" />
 </tag2>
</tag1>


вот код xsl файла XSLTFile.xsl:
Код:
  <?xml version="1.0" encoding="utf-8"?>
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
      <html>
      <body>
        <xsl:for-each select="tag1/tag2/tag3">
      <xsl:sort select="@id"/>                     
         <xsl:value-of select="@id"/>
         <i>   /   </i>
         <xsl:value-of select="@number"/>                   
   </xsl:for-each>
      </body>
      </html>
  </xsl:template>
  </xsl:stylesheet>


вот код html файла со скриптом:
Код:
    <html>
    <head>
    <script language="JavaScript">
    var source;
    var style;
    function init()
{
    source = new ActiveXObject("Microsoft.XMLDOM");
    source.async = false;
    style = new ActiveXObject("Microsoft.XMLDOM");
    style.async = false;
    source.load("test.xml");
    style.load("XSLTFile.xsl");
    document.all.item("xslresult").innerHTML = source.transformNode(style);
    return true;
}
</script>
</head>
<body onLoad="init()">
<div id="xslresult">
</div>
</body>
</html>
AlexShop Муж.
участник
34
Сообщения: 1866
Зарегистрирован: 17.02.04
Сообщение Добавлено: 11 Август 2007, 05:44:29 
Что бы парсировать XML в яваскрипте, я пользовался кросс-платформенным:

http://xmljs.sourceforge.net/

Но наверняка есть средства получше

_________________
Тот, кто задает вопрос, глупец в течение пяти минут, тот, кто его не задает, глупец всю свою жизнь. (Китайская поговорка)
buzi
новый человек
0
Сообщения: 1
Зарегистрирован: 11.08.07
Сообщение Добавлено: 11 Август 2007, 10:55:45 
Суммировать можно и в преобразовании:
Код:
<xsl:value-of select="sum(tag1/tag2/tag3/@number)"/>

А чтобы получить сумму значений, где id="1321":
Код:
<xsl:value-of select="sum(tag1/tag2/tag3[@id='1321']/@number)"/>
Petrovi4
новый человек
0
Сообщения: 6
Зарегистрирован: 07.08.07
Сообщение Добавлено: 11 Август 2007, 12:42:12 
2 buzi
Вот спасибо, вот это то, о чем я спрашивал. :glasses:
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 4 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100