Полезная информация

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№101-03-2016 20:16:41

YuryL
Участник
 
Группа: Members
Зарегистрирован: 24-08-2010
Сообщений: 31
UA: Firefox 44.0

XSLT тестовый пример

Здравствуйте,
Разбираюсь с XSLT.
Пример с сайта работает в Firefox.
http://www-archive.mozilla.org/projects/xslt/test.xml

Выделить код

Код:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<!-- this is a test document -->
<document>
   <!-- test comment -->
   <x name="x">x</x>
   <y name="y">y</y>
   <z name="z">z</z>

   <abc>
      <def>def</def>
   </abc>
</document>

но если скопировать на комп. оба файла(test.xml и test.xsl) в одну папку, то перестает работать трансформация в firefox.
Только по умолчанию убираются теги.

Как затавить firefox трансформировать локально?

скрытый текст
<!--
/*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is XSL:P XSLT processor.
*
* The Initial Developer of the Original Code is Keith Visco.
* Portions created by Keith Visco (C) 1999 Keith Visco.
* All Rights Reserved..
*
* Contributor(s):
* Keith Visco, kvisco@ziplink.net
*    - original author.
*
*/
--><!--
  This is a test stylesheet used for testing the XSL processor
--><xsl:stylesheet version="1.0"><!-- set the output properties -->
<xsl:output method="html"/><!-- AttributeSet -->
<xsl:attribute-set name="style1"><xsl:attribute name="COLOR">blue</xsl:attribute><xsl:attribute name="SIZE">+0</xsl:attribute></xsl:attribute-set><xsl:attribute-set name="style2"><xsl:attribute name="COLOR">red</xsl:attribute><xsl:attribute name="SIZE">+0</xsl:attribute></xsl:attribute-set><!-- root rule -->
<xsl:template match="/"><xsl:processing-instruction name="foo">
      this is a test processing instruction
   </xsl:processing-instruction><xsl:comment>TransforMiiX Test cases, written by Keith Visco.</xsl:comment><xsl:apply-templates/></xsl:template><!-- named template -->
<xsl:template name="named-template-test"><xsl:param name="my-param" select="'default value'"/>
   named template processed with <xsl:text> </xsl:text><xsl:value-of select="$my-param"/>!
   <xsl:if test="$dummy-param"><BR/><FONT COLOR="red">
        Error, undeclared parameters should be ignored!
     </FONT></xsl:if></xsl:template><!-- empty variable for named template test -->
<xsl:variable name="dummy-param"/><!-- supress non-selected nodes-->
<xsl:template match="*"/><!-- variable tests -->
<xsl:variable name="product-name">
  Transfor<FONT COLOR="blue">Mii</FONT>X
</xsl:variable><!-- main rule for document element -->
<xsl:template match="document"><HTML><HEAD><TITLE>TransforMiiX Test Cases</TITLE><SCRIPT Language="JavaScript"><xsl:text>
      // This is a test for properly printing SCRIPT elements
      // currently there is a bug, so use xsl:text as a wrapper as I
      // have done here
      function foo() {
          var x = 1;
          var y = 2;
          return (x < y);
      }
     //
     </xsl:text></SCRIPT></HEAD><BODY BGColor="#FFFFFF" Text="#000000"><CENTER><FONT COLOR="BLUE" FACE="Arial" SIZE="+1"><B>Mozilla XSLT</B></FONT><BR/><B>Transfor<FONT COLOR="blue">Mii</FONT>X Test Cases</B></CENTER><P>
  This document serves to test basic XSL expressions.
</P><!-- new test -->
<P><B>Testing xsl:variable and xsl:copy-of</B><BR/><B>Test:</B> <xsl:copy-of select="$product-name"/><BR/><B>Desired Result:</B>Transfor<FONT COLOR="blue">Mii</FONT>X<BR/><B>Result:</B><xsl:copy-of select="$product-name"/></P><!-- new test -->
<P><B>Testing xsl:if</B><BR/><B>Test:</B> <xsl:if test="x | y | z">true</xsl:if><BR/><B>Desired Result:</B> true<BR/><B>Result:</B><xsl:if test="x | y | z">true</xsl:if></P><!-- new test -->
<P><B>Testing xsl:if</B><BR/><B>Test:</B> <xsl:if test="true()">true</xsl:if><BR/><B>Desired Result:</B> true<BR/><B>Result:</B><xsl:if test="true()">true</xsl:if></P><!-- new test -->
<P><B>Testing xsl:if</B><BR/><B>Test:</B> <xsl:if test="'a'='b'">a equals b</xsl:if><BR/><B/> <xsl:if test="'a'!='b'">a does not equal b</xsl:if>
    <BR/><B>Desired Result:</B> a does not equal to b<BR/><B>Result:</B><xsl:if test="'a'='b'">a equals b<BR/></xsl:if><xsl:if test="'a'!='b'">a does not equal b</xsl:if></P><!-- new test -->
<P><B>Testing xsl:if</B><BR/><B>Test:</B> <xsl:if test="2+1-3"> 2+1-3 is true</xsl:if><BR/><B> </B><xsl:if test="not(2+1-3)"> not(2+1-3) is true</xsl:if><BR/><B>Desired Result:</B>not(2+1-3) is true <BR/><B>Result:</B><xsl:if test="2+1-3">2+1-3 is true</xsl:if><xsl:if test="not(2+1-3)">not(2+1-3) is true</xsl:if></P><!-- new test -->
<P><B>Testing xsl:choose</B><BR/><B>Test:</B>see source<BR/><B>Desired Result:</B> true<BR/><B>Result:</B><xsl:choose><xsl:when test="a">error - a</xsl:when><xsl:when test="abc/def">true</xsl:when><xsl:when test="b">error - b</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></P><!-- new test -->
<P><B>Testing parent and ancestor ops</B><BR/><B>Test:</B>see source<BR/><B>Desired Result:</B> true<BR/><B>Result:</B><xsl:if test="//def">true</xsl:if><BR/></P><!-- new test -->
<P><B>Testing basic xsl:apply-templates</B><BR/><B>Test:</B><xsl:apply-templates/><BR/><B>Desired Result:</B>element <B>x</B>, element <B>y</B>, element <B>z</B><BR/><B>Result:</B><xsl:apply-templates select="x|y|z"/></P><!-- new test -->
<P><B>Testing basic xsl:apply-templates with mode</B><BR/><B>Test:</B><xsl:apply-templates mode="mode-test"/><BR/><B>Desired Result:</B>x, y, z<BR/><B>Result:</B><xsl:apply-templates select="x|y|z" mode="mode-test"/></P><!-- new test -->
<P><B>Testing predicates</B><BR/><B>Test:</B>see source<BR/><B>Desired Result:</B><B>z</B><BR/><B>Result:</B><xsl:for-each select="*[position()=3]"><B><xsl:value-of select="."/></B></xsl:for-each></P><!-- new test -->
<P><B>Testing predicates</B><BR/><B>Test:</B>see source<BR/><B>Desired Result:</B><BR/><B>Result:</B><xsl:for-each select="*[false()]"><B><xsl:value-of select="."/></B></xsl:for-each></P><!-- new test -->
<P><B>Named Template/Call Template</B><P><B>Test:</B><xsl:call-template name="named-template-test"/><BR/><B>Desired Result:</B>named template processed with default value!<BR/><B>Result:</B><xsl:call-template name="named-template-test"/></P><P><B>Test:</B> - passing arguments to named templates (see xsl source)<BR/><B>Desired Result:</B>named template processed with passed value!<BR/><B>Result:</B><xsl:call-template name="named-template-test"><xsl:with-param name="my-param" select="'passed value'"/><xsl:with-param name="dummy-param" select="'test'"/></xsl:call-template></P></P><!-- new test -->
<P><B>Attribute Value Templates and variables</B><BR/><B>Test:</B><UL>
       <xsl:variable name="color">red</xsl:variable><BR/>
       <FONT COLOR="{$color}">Red Text</FONT>
    </UL><B>Desired Result:</B><FONT COLOR="red">Red Text</FONT><BR/><B>Result:</B><xsl:variable name="color">red</xsl:variable><FONT COLOR="{$color}">Red Text</FONT></P><HR/><!-- AXIS IDENTIFIER TESTS -->
<TABLE><TR BGColor="#E0E0FF"><TD Colspan="2" ALIGN="CENTER"><B>Axis Identifiers (these should work, I need more test cases though)</B></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:if test="descendant::z">true</xsl:if><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">true</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><xsl:if test="descendant::z"><FONT COLOR="blue">true</FONT></xsl:if></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:if test="not(descendant-or-self::no-element)">true</xsl:if><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">true</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><xsl:if test="not(descendant-or-self::no-element)"><FONT COLOR="blue">true</FONT></xsl:if></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="count(x/attribute::*)"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">1</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="count(x/attribute::*)"/></FONT></TD></TR></TABLE><HR/><TABLE><TR BGColor="#E0E0FF"><TD Colspan="2" ALIGN="CENTER"><B>Creating Elements with xsl:element and xsl:attribute</B></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:element name="FONT"><BR/>
         <xsl:attribute name="COLOR">blue</xsl:attribute> <BR/>
         Passed <BR/>
         </xsl:element>
      </TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">Passed</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><xsl:element name="FONT"><xsl:attribute name="COLOR">blue</xsl:attribute>
           Passed
         </xsl:element></TD></TR><!-- new test -->
<TR BGCOLOR="#E0E0FF" ALIGN="CENTER"><TD COLSPAN="2"><B>Using Attribute Sets</B></TD></TR><TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <FONT xsl:use-attribute-sets="style1"><BR/>
         Passed <BR/>
         </FONT>
      </TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">Passed</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT xsl:use-attribute-sets="style1">
            Passed
         </FONT></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:element name="FONT" use-attribute-sets="style1 style2"><BR/>
         Passed <BR/>
         </xsl:element>
      </TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="red">Passed</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><xsl:element name="FONT" use-attribute-sets="style1 style2">
            Passed
         </xsl:element></TD></TR></TABLE><HR/><!-- NUMBERING Examples -->
<TABLE><TR BGColor="#E0E0FF"><TD Colspan="2" ALIGN="CENTER"><B>Numbering (only simple numbering currently implemented)</B></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:number value="4"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">4</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:number value="4"/></FONT></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         see source<BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">
           1. x <BR/>1. y<BR/>1. z
         </FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:for-each select="x | y | z"><xsl:number/><xsl:text>. </xsl:text><xsl:value-of select="."/><BR/></xsl:for-each></FONT></TD></TR></TABLE><HR/><!-- ADDITIVE EXPRESSION TESTS -->
<TABLE><TR BGColor="#E0E0FF"><TD Colspan="2" ALIGN="CENTER"><B>Additive Expressions</B></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="70+4"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">74</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="70+4"/></FONT></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="-70+4"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">-66</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="-70+4"/></FONT></TD></TR><TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="1900+70+8-4"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">1974</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="1900+70+8-4"/></FONT></TD></TR><TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="(4+5)-(9+9)"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">-9</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="(4+5)-(9+9)"/></FONT></TD></TR></TABLE><HR/><!-- MULTIPLICATIVE EXPRESSION TESTS -->
<TABLE><TR BGColor="#E0E0FF"><TD Colspan="2" ALIGN="CENTER"><B>Multiplicative Expressions</B></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="7*4"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">28</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="7*4"/></FONT></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="7mod 4"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">3</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="7mod 4"/></FONT></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="7div 4"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">1.75</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="7div 4"/></FONT></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="7div 0"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">Infinity</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="7div 0"/></FONT></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="0 div 0"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">NaN</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="0 div 0"/></FONT></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:variable name="x" select="7*3"/><BR/>
         <xsl:variable name="y" select="3"/><BR/>
         <xsl:value-of select="$x div $y"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">7</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:variable name="x" select="7*3"/><xsl:variable name="y" select="3"/><xsl:value-of select="$x div $y"/><BR/></FONT></TD></TR></TABLE><!-- PRECEDENCE TESTS -->
<TABLE><TR BGColor="#E0E0FF"><TD Colspan="2" ALIGN="CENTER"><B>Precedence tests</B></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="2 mod 2 = 0"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">true</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="2 mod 2 = 0"/></FONT></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="5 mod 2 < 5 and 2*6 >= 12"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">true</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="5 mod 2 < 5 and 2*6>=12"/></FONT></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="5 mod 2 < 5 and 2*6>12"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">false</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="5 mod 2 < 5 and 2*6>12"/></FONT></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="4+5*3"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">19</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="4+5*3"/></FONT></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="4+5*3+(6-4)*7"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">33</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="4+5*3+(6-4)*7"/></FONT></TD></TR></TABLE><!-- Result Type conversion tests -->
<TABLE><TR BGColor="#E0E0FF"><TD Colspan="2" ALIGN="CENTER"><B>Automatic Result Type Conversion</B></TD></TR><!-- new test -->
<TR><TD VALIGN="TOP"><B>Test:</B></TD><TD>
         <xsl:value-of select="'747' + 8"/><BR/></TD></TR><TR><TD><B>Desired Result:</B></TD><TD><FONT COLOR="blue">755</FONT><BR/></TD></TR><TR><TD><B>Result:</B></TD><TD><FONT COLOR="blue"><xsl:value-of select="'747' + 8"/></FONT></TD></TR></TABLE></BODY></HTML></xsl:template><!-- simple union expressions -->
<xsl:template match="x | y | z" priority="1.0">
   element<B><xsl:text> </xsl:text><xsl:value-of select="@*"/></B><xsl:if test="not(position()=3)">,</xsl:if></xsl:template><xsl:template match="x | y | z" mode="mode-test"><xsl:value-of select="@*"/><xsl:if test="not(position()=3)"><xsl:text>, </xsl:text></xsl:if></xsl:template><xsl:template match="z">
   element (z): <B><xsl:value-of select="."/></B></xsl:template></xsl:stylesheet>

test.xsl под спойлером.

Отредактировано YuryL (01-03-2016 20:21:47)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]