2016-04-16 1 views
0

Im пытается сделать заявление xsl if, чтобы увидеть, могу ли я получить цены выше определенного числа, чтобы отобразить, но я не могу заставить его работать с плохой почтой кода, чтобы увидеть, может ли кто-нибудь увидеть мой ошибка у меня есть ОТД и таблицы стилей, но я не думаю, что есть необходимость в PST этиXsl Если тест Чтобы отобразить цену gt

приветствий

XSL:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="html" /> 
    <xsl:template match="/SpecialOffers"> 
     <html> 
      <head> 
       <link href="style.css" rel="stylesheet" type="text/css" /> 
      </head> 
      <body> 
       <center> 
        <h1>Special Offer's SuperMarket </h1> 
       </center> 
       <div id="Title1"> 
        <p>Offers Above .99c</p> 
       </div> 
<div id="content"> 
        <table style="width:100%"> 
         <tr> 
          <td>Description</td> 
          <td>Price</td> 
          <td>Offer</td> 
          <td>Number Of items</td> 
         </tr> 
         <xsl:for-each select="Hygiene/haircare"> 
         <xsl:if test="Price &gt;= 10"> 
          <tr> 
           <td> 

            <xsl:value-of select="description"/> 
           </td> 
           <td> 
            <xsl:value-of select="Price"/> 
           </td> 
           <td> 
            <xsl:value-of select="Offer"/> 
           </td> 
           <td> 
            <xsl:value-of select="Number_of_items"/> 
           </td> 
          </tr> 



         </xsl:if> 
         </xsl:for-each> 

      </table> 
      </div>    
      </body> 
     </html> 
    </xsl:template> 
</xsl:stylesheet> 

XML:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE SpecialOffers SYSTEM "Offers.dtd"> 
<!-- <?xml-stylesheet type="text/xsl" href="SpecialOffersStyleSheet.xsl"?> --> 
<?xml-stylesheet type="text/xsl" href="LoopOffers.xsl"?> 
<?xml-stylesheet type="text/css" href="style.css" ?> 
<SpecialOffers> 
    <Hygiene> 
     <haircare hid="HS"> 
      <Price>3.99</Price> 
      <Offer> 2 for 1 </Offer> 
      <Number_of_items>2</Number_of_items> 
      <description>Head and Shoulders</description> 
     </haircare> 
     <haircare hid="HE"> 
      <Price>1.99</Price> 
      <Offer>30% Off </Offer> 
      <Number_of_items>2</Number_of_items> 
      <description>Herbal Essence</description> 
     </haircare> 
     <haircare hid="L"> 
      <Price>.99c</Price> 
      <Offer> Half Price </Offer> 
      <Number_of_items>1</Number_of_items> 
      <description>Loreal</description> 
     </haircare> 
     <face_body_care> 
      <Price>1.50 </Price> 
      <Offer>Half Price</Offer> 
      <Number_of_items>1</Number_of_items> 
      <description>Radox Shower Gel</description> 
     </face_body_care> 
    </Hygiene> 
    <Cleaning_Products> 
     <household> 
      <Price>2.99</Price> 
      <Offer>2 for 1</Offer> 
      <Number_of_items>2</Number_of_items> 
      <description>Mr Sheen</description> 
     </household> 
     <detergents> 
      <Price>3.50</Price> 
      <Offer>25% Off</Offer> 
      <Number_of_items>1</Number_of_items> 
      <description>Dettol</description> 
     </detergents> 
    </Cleaning_Products> 
    <Grocery> 
     <fruit fid="M"> 
      <name>Mango</name> 
      <Price>.99c</Price> 
      <Offer>6 for .99c</Offer> 
      <weight>2kg</weight> 
      <organic></organic> 
     </fruit> 
     <fruit fid="B"> 
      <name>Banana</name> 
      <Price>1.39c</Price> 
      <Offer>1kg</Offer> 
      <weight>1kg</weight> 
      <organic>Yes</organic> 
     </fruit> 
     <vegeatables> 
      <name>Carrot</name> 
      <Price>1.49</Price> 
      <Offer>1kg for 1.49</Offer> 
      <weight>1kg</weight> 
      <organic>No</organic> 
     </vegeatables> 
     <vegeatables> 
      <name>Cabbage</name> 
      <Price>.89c</Price> 
      <Offer>1</Offer> 
      <weight>1kg</weight> 
      <organic>Yes</organic> 
     </vegeatables> 
    </Grocery> 
    <Perishables> 
     <canned_goods> 
      <name>Tuna</name> 
      <Price>.99c</Price> 
      <Offer>Half Price</Offer> 
      <weight>500g</weight> 
     </canned_goods> 
     <canned_goods> 
      <name>Beans</name> 
      <Price>1.99c</Price> 
      <Offer>6 For 1.99</Offer> 
      <weight>500g each</weight> 
     </canned_goods> 
    </Perishables> 
    <Alcholic_Beverages> 
     <spirits> 
      <name>Vodka</name> 
      <Price>14.50</Price> 
      <Offer>Half Price</Offer> 
      <ml>70cl</ml> 
      <volume_acl>37.5%</volume_acl> 
     </spirits> 
     <spirits> 
      <name>Gin</name> 
      <Price>27.50</Price> 
      <Offer>20% Off</Offer> 
      <ml>1 Litre</ml> 
      <volume_acl>37.5%</volume_acl> 
     </spirits> 
     <spirits> 
      <name>Gin</name> 
      <Price>27.50</Price> 
      <Offer>20% Off</Offer> 
      <ml>1 Litre</ml> 
      <volume_acl>37.5%</volume_acl> 
     </spirits> 
     <wine> 
      <name>Proseco</name> 
      <Price>13.75</Price> 
      <Offer>10% Off</Offer> 
      <ml>1 Litre</ml> 
      <volume_acl>13.5%</volume_acl> 
     </wine> 
     <largers> 
      <name>Heinkein</name> 
      <Price>£6</Price> 
      <Offer>4 for 6</Offer> 
      <ml>500ml</ml> 
      <volume_acl>4%</volume_acl> 
     </largers> 
    </Alcholic_Beverages> 
    <Non-Alcholic_Beverages> 
     <cordials> 
      <can> 
       <name>7 Up</name> 
       <Price>5.00</Price> 
       <Offer>12 Pack</Offer> 
       <ml>330</ml> 
      </can> 
      <bottle> 
       <name>Coke</name> 
       <Price>1.39</Price> 
       <Offer>2 for 1</Offer> 
       <ml>1 Litre</ml> 
      </bottle> 
     </cordials> 
     <juice> 
      <name>Sunny D</name> 
      <Price>.75c</Price> 
      <Offer>Half Price</Offer> 
      <ml>1 Litre</ml> 
     </juice> 
    </Non-Alcholic_Beverages> 
</SpecialOffers> 
+0

Пожалуйста, выберите ** либо ** XSLT 1.0 ** или ** XSLT 2.0 - не ** оба **. –

ответ

0

Причина, по которой ваша таблица стилей не создает строк таблицы, заключается в том, что нет продуктов для ухода за волосами, цена которых больше или равна 10 в вашем исходном XML.

Ваше название говорит «Предложения Над .99c» - и если вы хотите, чтобы показать продукты, цена которых превышает 0,99, вы должны сделать ваше состояние:

<xsl:if test="Price &gt;= 1"> 

Обратите внимание, что эти продукты в вашем XML цена которого 0,99c не пройдет этот тест, но не потому, что их цена ниже порога, а потому, что их цена не является числом. Для того, чтобы включить эти цены в сравнении, вы должны удалить валюту - например:

<xsl:if test="translate(Price, 'c', '') &gt;= .5"> 

Вышесказанное относится к XSLT 1.0, а также будет работать с XSLT-процессором 2.0 до тех пор, пока таблицы стилей по-прежнему отмечается как version="1.0", как и сейчас.

+0

Извините, только что вернулся, чтобы ответить на это приветствие за помощь, которую я понял после этого, сколько из простой ошибки было, и я просто не мог определить ее на всю жизнь, спасибо за помощь :) – aero123

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

  • Нет связанных вопросов^_^