XML/XSLT stylesheet/output
Содержание
Add , to the output
<source lang="xml">
File: Data.xml <employees>
<emp> <lName>A</lName> <fName>B</fName> <hireDate>19980323</hireDate> </emp> <emp> <lName>C</lName> <fName>D</fName> <hireDate>19991103</hireDate> </emp>
</employees> File: Transform.xslt <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"> <xsl:output method="text" indent="no" /> <xsl:template match="emp"> <xsl:apply-templates select="lName" /> <xsl:text>,</xsl:text> <xsl:apply-templates select="fName" /> <xsl:text>,</xsl:text> <xsl:apply-templates select="hireDate" /> </xsl:template>
</xsl:stylesheet> Output:
A,B,19980323 C,D,19991103 </source>
Add your signs to the output (output method="text")
<source lang="xml">
File: Data.xml <chapter>
<title>The Chapter</title> <sect1> <title>First Section</title> <figure> <title>First picture in book</title> <graphic fileref="pic1.jpg" /> </figure> </sect1>
</chapter>
File: Transform.xslt <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"> <xsl:output method="text" /> <xsl:template match="sect1/title"> [ <xsl:apply-templates /> ] </xsl:template> <xsl:template match="para" />
</xsl:stylesheet> Output:
The Chapter [ First Section ] First picture in book </source>
format output with tab
<source lang="xml">
File: Data.xml <employees>
<employee hireDate="04/23/1999"> <last>A</last> <first>B</first> <salary>100000</salary> </employee> <employee hireDate="09/01/1998"> <last>C</last> <first>D</first> <salary>95000</salary> </employee> <employee hireDate="08/20/2000"> <last>E</last> <first>F</first> <salary>89000</salary> </employee>
</employees> File: Transform.xslt <!DOCTYPE stylesheet [
<!ENTITY tab "<xsl:text> </xsl:text>"> <!ENTITY cr "<xsl:text>
</xsl:text>"> ]> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"> <xsl:output method="text" /> <xsl:template match="employees"> Last&tab;First&tab;Salary&tab;Hire Date ----&tab;-----&tab;------&tab;---------- <xsl:apply-templates /> </xsl:template> <xsl:template match="employee"> <xsl:apply-templates select="last" /> &tab; <xsl:apply-templates select="first" /> &tab; <xsl:apply-templates select="salary" /> &tab; <xsl:apply-templates select="@hireDate" /> &cr; </xsl:template>
</xsl:stylesheet> Output:
Last First Salary Hire Date ---- ----- ------ ---------- A B 100000 04/23/1999
C D 95000 09/01/1998
E F 89000 08/20/2000 </source>
Output html option list
<source lang="xml">
File: Data.xml <?xml version="1.0"?> <countries>
<country name="France" /> <country name="Germany" /> <country name="Israel" /> <country name="Japan" /> <country name="Poland" /> <country name="United States" selected="yes" /> <country name="Venezuela" />
</countries> File: Transform.xslt <?xml version="1.0"?> <html xsl:version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <body>
Please select a country:
<select id="country"> <xsl:for-each select="//country"> <option value="{@name}"> <xsl:if test="@selected="yes""> <xsl:attribute name="selected">selected</xsl:attribute> </xsl:if> <xsl:value-of select="@name" /> </option> </xsl:for-each> </select>
</body>
</html> Output: <html>
<body>
Please select a country:
<select id="country"><option value="France">France</option> <option value="Germany">Germany</option> <option value="Israel">Israel</option> <option value="Japan">Japan</option> <option value="Poland">Poland</option> <option value="United States" selected>United States</option><option value="Venezuela">Venezuela</option></select>
</body>
</html>
</source>
Output HTML tags
<source lang="xml">
File: Data.xml <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="Transform.xslt"?> <greeting>Hello World!</greeting>
File: Transform.xslt <?xml version="1.0" encoding="ISO-8859-1"?> <html xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml" xsl:version="2.0"> <head><title>Hello World Example</title></head> <body>
<xsl:value-of select="/greeting" />
</body>
</html> Output: <?xml version="1.0" encoding="UTF-8"?><html xmlns="http://www.w3.org/1999/xhtml">
<head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Hello World Example</title> </head> <body>
Hello World!
</body>
</html>
</source>
output method="html"
<source lang="xml">
File: Data.xml <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="Books.xsl"?> <Books xmlns="http://www.wbex.ru"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Book xmlns="http://www.wbex.ru"> <Title>title 1</Title> <Author>author 1</Author> <Date>1998</Date> <ISBN>1-11111-111-1</ISBN> <Publisher>publisher 1</Publisher> </Book> <Book xmlns="http://www.wbex.ru"> <Title>title 2</Title> <Author>author 2</Author> <Date>1977</Date> <ISBN>2-222-22222-2</ISBN> <Publisher>publisher 2</Publisher> </Book>
</Books>
File: Books.xsl <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xlink="http://www.w3.org/1999/xlink/namespace" xmlns:bks="http://www.wbex.ru" xmlns:bk="http://www.wbex.ru" exclude-result-prefixes="bk bks" version="1.0"> <xsl:output method="html"/> <xsl:include href="Book.xsl"/> <xsl:template match="/"> <HTML> <BODY> <xsl:apply-templates/> </BODY> </HTML> </xsl:template> <xsl:template match="bks:Books">
My Bookstore
</xsl:template> <xsl:template match="bks:Book"> <xsl:variable name="book-url" select="document(@xlink:href)"/> <xsl:apply-templates select="$book-url//bk:Book"/> </xsl:template>
</xsl:stylesheet>
File: Book.xsl <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bk="http://www.wbex.ru" exclude-result-prefixes="bk" version="1.0"> <xsl:output method="html"/> <xsl:template match="/"> <HTML> <BODY>
</BODY> </HTML> </xsl:template> <xsl:template match="bk:Book"> <TR> <xsl:apply-templates/> </TR> </xsl:template> <xsl:template match="*"> <TD> <xsl:value-of select="."/> </TD> </xsl:template>
</xsl:stylesheet>
</source>
output method="xml" omit-xml-declaration="yes" indent="no"
<source lang="xml">
File: Data.xml <wine grape="chardonnay">
<product>product 2</product> <year>1997</year> <price>10.99</price>
</wine>
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" indent="no" /> <xsl:template match="wine"> <wine> <price> <xsl:apply-templates select="price" /> </price> <product> <xsl:apply-templates select="product" /> </product> </wine> </xsl:template>
</xsl:stylesheet> Output: <wine><price>10.99</price><product>product 2</product></wine>
</source>
output rtf in format
<source lang="xml">
File: Data.xml <article>
<title author="bd" ver="1.0">My Article</title>
First paragraph. 3 < 4.
Second paragraph. AT&T is a big company.
</article> File: Transform.xslt <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"> <xsl:output method="text" /> <xsl:template match="article"> {\rtf1 <xsl:apply-templates /> } </xsl:template> <xsl:template match="title"> \par {\b <xsl:apply-templates /> } </xsl:template> <xsl:template match="p"> \par <xsl:apply-templates /> </xsl:template>
</xsl:stylesheet> Output:
{\rtf1 \par {\b My Article } \par First paragraph. 3 < 4. \par Second paragraph. AT&T is a big company. } </source>
Output text with tag
<source lang="xml">
File: Data.xml <test>AAA</test> File: Transform.xslt <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"> <xsl:template match="test"> <testOut> this is a test <xsl:apply-templates /> </testOut> </xsl:template>
</xsl:stylesheet>
Output: <?xml version="1.0" encoding="UTF-8"?><testOut>
this is a test AAA</testOut> </source>
Output text with xsl:text
<source lang="xml">
File: Data.xml <?xml version="1.0" encoding="iso-8859-1"?> <document>
<author>author</author> <title>XSLT 2.0 Programmer"s Reference</title> <copyright/> <date/> <abstract>abstract </abstract>
</document>
File: Transform.xslt <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"> <xsl:variable name="owner">John Wiley and Sons</xsl:variable> <xsl:template name="copyright"> <xsl:text>Copyright ?</xsl:text> <xsl:value-of select="$owner" /> <xsl:text> 2004</xsl:text> </xsl:template>
</xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?>
author XSLT 2.0 Programmer"s Reference abstract </source>
Select with value-of and output with new tags
<source lang="xml">
File: Data.xml <?xml version="1.0" encoding="utf-8"?> <emailList>
<person> <name>person1</name> <email>p@hotmail.ru</email> </person> <person> <name>person2</name> <email>p@hotmail.ru</email> </person> <person> <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="xml" indent="yes"/>
<xsl:template match="/"> <contacts> <xsl:for-each select="emailList/person"> <contact> <fullName> <xsl:value-of select="name"/> </fullName> <eMail> <xsl:value-of select="email"/> </eMail> </contact> </xsl:for-each> </contacts> </xsl:template>
</xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?> <contacts>
<contact> <fullName>person1</fullName> <eMail>p@hotmail.ru</eMail> </contact> <contact> <fullName>person2</fullName> <eMail>p@hotmail.ru</eMail> </contact> <contact> <fullName>person3</fullName> <eMail>p3@hotmail.ru</eMail> </contact>
</contacts>
</source>