XML Tutorial/XSLT stylesheet/namespace alias

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

namespace alias

   <source lang="xml">

File: Data.xml <?xml version="1.0" encoding="UTF-8"?> <europe>

 <scandinavia>
   <state>Finland</state>
   <state>Sweden</state>
   <state>Iceland</state>
   <state>Norway</state>
   <state>Denmark</state>
 </scandinavia>

</europe> File: Transform.xslt <xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns="urn:wyeast-net:scandinavia"
 xmlns:sc="http://www.wbex.ru/scand">
 <xsl:output method="xml" indent="yes" encoding="ISO-8859-1" />
 <xsl:namespace-alias stylesheet-prefix="sc"
   result-prefix="#default" />
 <xsl:template match="europe">
   <xsl:apply-templates select="scandinavia" />
 </xsl:template>
 <xsl:template match="scandinavia">
   <sc:scandinavia>
     <xsl:apply-templates select="state">
       <xsl:sort />
     </xsl:apply-templates>
   </sc:scandinavia>
 </xsl:template>
 <xsl:template match="state">
   <sc:country>
     <xsl:value-of select="." />
   </sc:country>
 </xsl:template>

</xsl:stylesheet> Output: <?xml version="1.0" encoding="ISO-8859-1"?> <scandinavia xmlns="urn:wyeast-net:scandinavia">

  <country>Denmark</country>
  <country>Finland</country>
  <country>Iceland</country>
  <country>Norway</country>
  <country>Sweden</country>

</scandinavia></source>


new namespace-alias

   <source lang="xml">

File: Data.xml <?xml version="1.0" encoding="UTF-8"?> <europe>

<scandinavia>
 <state>Finland</state>
 <state>Sweden</state>
 <state>Iceland</state>
 <state>Norway</state>
 <state>Denmark</state>
</scandinavia>

</europe>

File: Transform.xslt <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns="http://www.wbex.ru"

 xmlns:sc="http://www.wbex.ru/scand"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml" indent="yes" encoding="ISO-8859-1" />
 <xsl:namespace-alias stylesheet-prefix="sc"
   result-prefix="#default" />
 <xsl:template match="europe">
   <xsl:apply-templates select="scandinavia" />
 </xsl:template>
 <xsl:template match="scandinavia">
   <sc:scandinavia>
     <xsl:apply-templates select="state">
       <xsl:sort />
     </xsl:apply-templates>
   </sc:scandinavia>
 </xsl:template>
 <xsl:template match="state">
   <sc:country>
     <xsl:value-of select="." />
   </sc:country>
 </xsl:template>

</xsl:stylesheet> Output: <?xml version="1.0" encoding="ISO-8859-1"?> <scandinavia xmlns="http://www.wbex.ru">

  <country>Denmark</country>
  <country>Finland</country>
  <country>Iceland</country>
  <country>Norway</country>
  <country>Sweden</country>

</scandinavia></source>