使用XSLT在网站中包含天气预报

时间:2011-05-28 09:51:45

标签: xml xslt

我想在ftp://ftp.knmi.nl/pub_weerberichten/basisverwachting.xml将天气报告添加到我的网站。

我想要包含的具体元素位于:

report/data/location/block

其中block包含:

<field_id>Verwachting</field_id>

如何使用简单的XSL转换执行此操作?

更新

我有以下XSL转换,但它没有结果:

<xsl:variable name="weerknmi" select="document('ftp://ftp.knmi.nl/pub_weerberichten/basisverwachting.xml')/report/data/location"/>
<xsl:value-of select="$weerknmi/block[field_id = 'Verwachting']/field_content"/>

2 个答案:

答案 0 :(得分:1)

一个简单的XPath表达式将执行此操作:

report/data/location/block[field_id = 'Verwachting']/field_content

如果你想在XSLT中使用它,你可以这样做:

<xsl:value-of select="document('ftp://ftp.knmi.nl/pub_weerberichten/basisverwachting.xml')/report/data/location/block[field_id = 'Verwachting']/field_content" />

我的语法可能略有错误,我不经常使用document(),我现在无法轻易检查它,但你明白了。

答案 1 :(得分:1)

使用

report/data/location/block[field_id='Verwachting']/field_content

这是一个完整且非常简短的XSLT转换

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:variable name="vDoc" select=
 "document('ftp://ftp.knmi.nl/pub_weerberichten/basisverwachting.xml')"/>

 <xsl:template match="/">
  <xsl:apply-templates select="$vDoc" mode="doc"/>
 </xsl:template>  

 <xsl:template match="/" mode="doc">
     <xsl:value-of select=
      "report/data/location/block[field_id='Verwachting']/field_content"/>
 </xsl:template>
</xsl:stylesheet>

应用于任何文档(未使用)时,转换动态获取位于ar ftp://ftp.knmi.nl/pub_weerberichten/basisverwachting.xml 的XML文档,处理它并生成所需结果

Vrij veel bewolking en volral in het noorden af ene rere of motregen。在het zuiden blijft het overwegend droog。 De middagtemperatuur loopt uiteen van een graad of 14 in het Waddengebied在het zuidoosten的19 graden。 De zuidwestelijke wind是matig tot vrij krachtig。 Aan de kust是de wind krachtig的硬,6 tot 7.

Komende nacht is er vrij veel bewolking在het noorden en midden mogelijk nog lichte regen遇到了。 De minimumtemperatuur ligt rond een graad of 11. De zuidwestelijke wind neemt af naar zwak tot matig,rond kracht 3. Aan de kust is de wind af en toe vrij krachtig,5。

Morgen overdag breekt op steeds meer plaatsen de zon door en het vrijwel overal droog。 De middagtemperatuur loopt uiteen van een graad of 16 in het noordwestelijk kustgebied tot 23 graden in het zuidoosten。 De zuidwestelijke wind trekt weer aan en wordt matig tot vrij krachtig,kracht 4 of 5,aan de kust en op het IJsselmeer krachtig tot hard,6 of 7 Bft。 “Avonds neemt de wind af。 (布朗:KNMI)