Dziś na forum CodeGuru.pl, które od czasu do czasu przeglądam pojawił się ciekawy problem, stworzenia listy województw i miast, które do nich należą(link). Stwierdziłem, iż jest to ciekawy temat, aby poćwiczyć troszkę XSLT. Dodatkowo taka lista może być kiedyś w jakimś projekcie przydatna.
Plik z listą można ściągnąć tu. Poniżej prezentuję transformatę XSLT jakby, ktoś chciał na nią zerknąć. Nie jest dziełem sztuki, gdyż pisałem ją raczej jako narzędzie do osiągnięcia celu a nie tak, aby wyszło dzieło sztuki.
1 xml version=“1.0“ encoding=“utf-8“?>
2
3 <xsl:stylesheet version=“1.0“
4 xmlns:xsl=“http://www.w3.org/1999/XSL/Transform“
5 xmlns:fn=“http://www.w3.org/2005/02/xpath-functions“
6 xmlns:x=“http://www.w3.org/1999/xhtml“>
7 <xsl:output media-type=“text/xml“ indent=“yes“/>
8
9 <xsl:template match=“/“>
10 <xsl:element name=“wojewodztwa“>
11 <xsl:attribute name=“zródło“>
12 <xsl:text>http://pl.wikipedia.org/wiki/Miasta_w_Polscexsl:text>
13 xsl:attribute>
14 <xsl:apply-templates select=“/x:html/x:body/x:div/x:div[1]/x:div/x:div/x:ul“ />
15 xsl:element>
16 xsl:template>
17
18 <xsl:template match=“/x:html/x:body/x:div/x:div[1]/x:div/x:div/x:ul“>
19 <xsl:for-each select=“x:li“>
20 <xsl:element name=“wojewodztwo“>
21 <xsl:attribute name=“nazwa“>
22 <xsl:value-of select=“substring-after(./x:a/@title,’ ‘)“ />
23 xsl:attribute>
24 <xsl:variable name=“skrot“ select=“substring-before(string(.),’ ‘)“ />
25 <xsl:attribute name=“skrót“>
26 <xsl:value-of select=“$skrot“ />
27 xsl:attribute>
28 <xsl:call-template name=“miasta“>
29 <xsl:with-param name=“skrot“ select=“$skrot“ />
30 xsl:call-template>
31 xsl:element>
32 xsl:for-each>
33 xsl:template>
34
35 <xsl:template name=“miasta“>
36 <xsl:param name=“skrot“ />
37 <xsl:for-each select=“../../x:table/x:tr/x:td/x:table/x:tr/*/*/*“>
38 <xsl:if test=“contains(string(.),concat(‘(‘,$skrot,’)’))“>
39 <xsl:element name=“miasto“>
40 <xsl:value-of select=“normalize-space(substring-before(.,'(‘))“/>
41 xsl:element>
42 xsl:if>
43 xsl:for-each>
44 xsl:template>
45 xsl:stylesheet>
Źródłem miast jest stronka znajdująca się na wiki i aby wszystko było zgodnie z jej licencją publikuję link do źródłowego artykułu http://pl.wikipedia.org/wiki/Miasta_w_Polsce oraz historią. Z tego co wyczytałem, to wszystkie wymogi, aby móc z niej korzystać.
Founder of Octal Solutions a .NET software house.
Passionate dev, blogger, occasionally speaker, one of the leaders of Wroc.NET user group. Microsoft MVP. Podcaster – Ostrapila.pl