XML/XSLT stylesheet/boolean operator — различия между версиями

Материал из Web эксперт
Перейти к: навигация, поиск
 
м (1 версия)
 
(нет различий)

Текущая версия на 11:26, 26 мая 2010

not operator

   <source lang="xml">

File: Data.xml <sample>

   <line lid="u1">hello</line>
   <line color="red" lid="u2">hello</line>
   <line color="blue" lid="u3">hello</line>
   <line lid="u4">hello there</line>
   <line color="blue" lid="u5">hello there</line>
   <line color="blue" lid="u6">hello</line>

</sample> File: Transform.xslt <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

 version="1.0">
 <xsl:output method="xml" omit-xml-declaration="yes" />
 <xsl:template match="line">
   <xsl:if test="not(. = preceding::line)">
     <xsl:copy>
       <xsl:apply-templates select="@*|node()" />
     </xsl:copy>
   </xsl:if>
 </xsl:template>
 <xsl:template match="@*|node()">
   <xsl:copy>
     <xsl:apply-templates select="@*|node()" />
   </xsl:copy>
 </xsl:template>

</xsl:stylesheet> Output: <sample>

   <line lid="u1">hello</line>
   
   
   <line lid="u4">hello there</line>
   
   

</sample>

</source>
   
  


true() function

   <source lang="xml">

File: Data.xml <?xml version="1.0" encoding="utf-8"?> <emailList>

 <head:header xmlns:head="http://www.domain.ru/namespace/header">
   <title>Email List</title>
   <maintainer>Joe</maintainer>
 </head:header>
 <person type="personal" id="p001">
   <name>person1</name>
   <email>p@hotmail.ru</email>
 </person>
 <person type="work" id="p002">
   <name>person2</name>
   <email>p@hotmail.ru</email>
 </person>
 <person type="personal" id="p003">
   <name>person3</name>
   <email>p3@hotmail.ru</email>
 </person>

</emailList> File: Transform.xslt <?xml version="1.0" encoding="UTf-8" ?> <xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text" indent="yes" />
 <xsl:template match="/">
   <xsl:apply-templates select="emailList">
     <xsl:with-param name="bool" select="true()" />
   </xsl:apply-templates>
 </xsl:template>
 <xsl:template match="emailList">
   <xsl:param name="bool" select="true()" />
   <xsl:variable name="true" select="true()" />
   <xsl:if test="$bool = $true">
     <xsl:text>sendPage.jsp</xsl:text>
   </xsl:if>
 </xsl:template>

</xsl:stylesheet> Output: sendPage.jsp

</source>