2016-04-16 5 views
0

Ich versuche, eine xsl if-Anweisung zu sehen, kann ich Preise alle über einer bestimmten Anzahl, um anzuzeigen, aber ich kann es nicht zur Arbeit krank Posten Sie den Code, um zu sehen, ob jemand meine sehen kann Fehler ich habe eine dtd und ein Stylesheet, aber ich glaube nicht, gibt es pst müssen dieseXsl Wenn Test Um Preis anzuzeigen gt

prost

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

Bitte ** entweder ** XSLT 1.0 ** oder ** XSLT 2.0 - nicht ** beide ** auswählen. –

Antwort

0

Der Grund, warum Ihr Stylesheet keine Tabellenzeilen erzeugt, ist, dass es keine Haarpflegeprodukte gibt, deren Preis größer oder gleich 10 in Ihrer Quell-XML ist.

Ihr Titel sagt „Angebote Above .99c“ - und wenn Sie Produkte, deren Preis zeigen wollen, ist über 0.99, müssen Sie Ihren Zustand machen:

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

Beachten Sie, dass diese Produkte in Ihrem XML wessen Preis ist .99c wird diesen Test nicht bestehen - aber nicht, weil ihr Preis niedriger ist als der Schwellenwert, sondern weil ihr Preis keine Zahl ist. Um diese Preise im Vergleich zu enthalten, müssten Sie die Währung entfernen - zum Beispiel:

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

Das Vorstehende gilt 1,0 bis XSLT und wird auch mit einem XSLT 2.0 Prozessor für so lange, wie Ihr Sheet arbeiten wird weiterhin als version="1.0" markiert, wie es jetzt ist.

+0

Es tut mir leid, nur zurück zu diesem Cheers für die Hilfe zu antworten, die ich später erkannte, wie viel von einem einfachen Fehler war es und ich konnte es nur für das Leben von mir nicht finden Dank für die Hilfe :) – aero123

Verwandte Themen