Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ XML _ XSL:IF nie wyklucza

Napisany przez: banki 17.01.2022, 23:26:02

Cześć wszystkim,

nie mam absolutnie wiedzy z zakresu XML, XSLT. Potrzebuję na szybko coś przefiltrować z pliku XML poprzez sterownik XSLT i za chiny mi nie wychodzi.

Mam plik XML:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <offer xmlns:iof="http://www.iai-shop.com/developers/iof.phtml" xmlns:iaiext="http://www.iai-shop.com/developers/iof/extensions.phtml" file_format="IOF" generated="2022-01-06 07:26:58" expires="2022-01-07 07:26:58" version="3.0" extensions="yes">
  3. <products language="pol">
  4. <product id="29" currency="PLN" code_on_card="D52002">
  5. <producer id="1269457731" name="PRODUCER3"/>
  6. </product>
  7. <product id="30" currency="PLN" code_on_card="D52003">
  8. <producer id="1269457731" name="PRODUCER2"/>
  9. </product>
  10. </products>
  11. </offer>


oraz sterownik XSLT
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:template match="/">
  4. <xsl:for-each select="offer/products/product" >
  5. <xsl:if test="producer/@name = 'PRODUCER2'"/>
  6. <id><xsl:value-of select="@id"/></id> -
  7. <code><xsl:value-of select="@code_on_card"/></code><br/>
  8. </xsl:if>
  9. </xsl:for-each>
  10. </xsl:template>
  11. </xsl:stylesheet>


Jednak wynik pokazuje wszystkie pozycje, a nie tylko te gdzie producer to PRODUCER2. Ktoś mnie naprowadzi dlaczego tak się dzieje? Z góry dzięki.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)