XML Tutorial/XSLT stylesheet/document

Материал из Web эксперт
Версия от 21:22, 25 мая 2010; (обсуждение)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

select all document

   <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"?> <xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:head="http://www.domain.ru/namespace/header">
 <xsl:output method="xml" indent="yes" />
 <xsl:template match="/">
   <paragraph>
     Additional Information about the employee:
     
<xsl:copy-of select="document("Data.xml")" /> </p> </xsl:template>

</xsl:stylesheet></source>


select=document(capitals.xml)/capitals

   <source lang="xml">

File: Data.xml <?xml version="1.0" encoding="US-ASCII"?> <usstates>

<western>
 <usstate>Arizona</usstate>
 <usstate>California</usstate>
 <usstate>Idaho</usstate>
 <usstate>Montana</usstate>
 <usstate>Nevada</usstate>
 <usstate>Oregon</usstate>
 <usstate>Washington</usstate>
 <usstate>Utah</usstate>
</western>

</usstates>

File: Transform.xslt <?xml version="1.0" encoding="US-ASCII"?> <xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text" />
 <xsl:key name="Capital" match="capital" use="@usstate" />
 <xsl:key name="State" match="usstate" use="text()" />
 <xsl:param name="cr">Arizona</xsl:param>
 <xsl:template match="/">
   <xsl:apply-templates select="document("capitals.xml")/capitals" />
   <xsl:text>, </xsl:text>
   <xsl:value-of select="key("State", $cr)" />
 </xsl:template>
 <xsl:template match="capitals">
   <xsl:value-of select="key("Capital", $cr)" />
 </xsl:template>

</xsl:stylesheet></source>


select="document(@location)"

   <source lang="xml">

File: Data.xml <?xml version="1.0" encoding="UTF-8"?> <volume name="Old Testament">

 <book name="Java">
   <chapter location="Java1.xml" />
   <chapter location="Java2.xml" />
   <chapter location="Java3.xml" />
   <chapter location="Java4.xml" />
 </book>

</volume> 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="xml" indent="yes" />
 <xsl:template match="volume">
   <xsl:copy>
     <xsl:attribute name="name"><xsl:value-of select="@name" />
     </xsl:attribute>
     <xsl:apply-templates select="book" />
   </xsl:copy>
 </xsl:template>
 <xsl:template match="book">
   <xsl:copy>
     <xsl:attribute name="name"><xsl:value-of select="@name" />
     </xsl:attribute>
     <xsl:apply-templates select="chapter" />
   </xsl:copy>
 </xsl:template>
 <xsl:template match="chapter">
   <xsl:copy-of select="document(@location)" />
 </xsl:template>

</xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?> <volume name="Old Testament">

  <book name="Java"/>

</volume></source>


Use document to load an XML file

   <source lang="xml">

File: Data.xml <?xml version="1.0"?> <chapter number="1">

 <verse number="1">line 1</verse>
 <verse number="2">line 2</verse>
 <verse number="3">line 3</verse>

</chapter>

File: Transform.xslt <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:template match="volume">

<xsl:copy>
 <xsl:attribute name="name">Old Testament</xsl:attribute>
 <xsl:apply-templates select="book"/>
</xsl:copy>

</xsl:template> <xsl:template match="book">

<xsl:copy>
 <xsl:attribute name="name">Java</xsl:attribute>
 <xsl:copy-of select="document("a.xml")"/>
</xsl:copy>

</xsl:template> </xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?>

 line 1
 line 2
 line 3</source>