2016-06-12 4 views
0

у меня есть один XML файл:XSL - сумма стоимости элементов

<?xml version="1.0" encoding="utf-8" standalone="no"?> 
    <File> 
     <Cars> 
      <Car> 
       <Color>Blue</Color> 
       <Year>1988</Year> 
       <Quantity>150</Quantity> 
      </Car> 
      <Car> 
       <Color>Green</Color> 
       <Year>1989</Year> 
       <Quantity>200</Quantity> 
      </Car> 
     </Cars> 
    </File> 

И один XSL файл:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" indent="yes" encoding="utf-8" media-type="text/xml"/> 

    <xsl:template match="File"> 
     <File> 

      <vehicles> 
       <xsl:for-each select="Cars/Car"> 
        <vehicle> 
         <vehicleColor> 
          <xsl:value-of select="Color"/> 
         </vehicleColor> 
         <vehicleYear> 
          <xsl:value-of select="Year"/> 
         </vehicleYear> 
        </vehicle> 
       </xsl:for-each> 
      </vehicles> 

      <TotalQuantity> 
        <xsl:value-of select="sum()"/> ///// Sum of quantity of all car (<Quantity>) 
      </TotalQuantity> 
     </File> 
    </xsl:template> 

</xsl:stylesheet> 

Я хочу, чтобы сумма всех величин каждого автомобиля и отображения результат в элементе TotalQuantity. Что положить в метод sum()?

Я использую только XSL 1.0. Я превратить свой класс XML с XslCompiledTransform C#

ответ

0

С текущего узла File, вы хотите:

sum(Cars/Car/Quantity) 

конечно.

+0

Довольно просто ... Спасибо! –

+0

Это все возможности XPath доступны с XSL 1.0? http://www.tutorialspoint.com/xpath/index.htm Оси, операторы, подстановочные знаки, предикаты и т. д. –

+0

Все функции XPath 1.0 описаны в официальной документации: https://www.w3.org/TR/xpath/ #contents –

Смежные вопросы