> well Im out of a job so I am sitting around learning XML. It seems like a > great tool, but I am trying to figure out why I would actually use it?
If you intersting for my experience: I find xml+xslt useful for offline-site generation tasks, right now I am making site, and there are folders content\ db\ pages\ xslt\ in 'db' I store 'pages.xml', 'news.xml' and 'common.xml' f.e. 'pages.xml' - describe all pages of site: <?xml version="1.0"?> <pages> <page id="about"> <name>about</name> <descr>more description</descr> </page> <page id="address"> <name>address</name> <descr>more descritption</descr> </page> ... </pages> where <name> are going to menu and to page header, <descr> - this is 'title' for <a>, 'news.xml' - news of site: <?xml version="1.0"?> <news> <news-item> <date>01.01.2003</date> <text>opening site</text> </news-item> </news> 'common.xml' - common information about company (name, year, email, phones ...) <?xml version="1.0" encoding="windows-1251"?> <common> <year>2003</year> <name>Name of company</name> <slogan>slogan</slogan> <address> <line>russia/ekaterinburg</line> <line>street/building</line> <line>phone</line> <line>email</line> </address> <logo width="200" height="200" src="image.gif" title="title/> </common> directory 'pages' store each page as xml file, f.e. 'about.xml': <?xml version="1.0"?> <page-content> <p img="hands"> paragraph </p> </page-content> then in folder 'xslt' are stored xslt files, there is 'fp-page.xsl' an 'site-page.xsl' first - this is xslt-transformation for First Page (index.html) second - this is xslt-transformation for any page of site. my php script make next - for each page of site make one xml file, as aggregation of pages.xml + common.xml + {idPage}.xml and with this one xml file make site-page.xsl transformation and then save this as file {idPage}.html script have template: <?xml version="1.0"> <page-of-site> #add_elements_here# </page-of-site> and on #add_elements_here# it are placed that xml files, also script placed tag <pageId>{idPage}</pageId> where {idPage} - are real page's id ('about', 'address' ...) by this tag xsl can determine what page he show, and make menu bar with selected item, and take from "page-of-site/pages/page[@id = $idPage]/name" (this is XPath) name of page, for placing description of page. content may contains any tags, and in xsl there is handlers for them, f.e. I have 'price.xml', and I have specific tags for price-list, and price line: <?xml version="1.0"?> <page-content> <p> <price-list> <price file="file1.zip">Things1</price> <price file="file2.zip">Things1</price> </price-list> </p> </page-content> and in site-page.xsl there is handler (tamplate in xslt term.) for this: <xsl:template match="price-list" mode="content"> <table border="0" cellpadding="3" cellspacing="3"> <xsl:for-each select="price"> <tr> <xsl:if test="position() mod 2 != 0"> <xsl:attribute name="bgcolor">#eeeeee</xsl:attribute> </xsl:if> <td><xsl:value-of select="."/></td> <td><a href="{@file}" target="_blank"><xsl:value-of select="@file"/></a></td> </tr> </xsl:for-each> </table> </xsl:template> hope this helps :) Ilya ps: may be in future I make my this project open-source. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php