xslt转换在删除根节点之前无法工作。

xslt转换在删除根节点之前无法工作。

我试图使用XSLT从Met Office Web服务中提取以下XML的标题,但是XSLT选择返回空白。

资料来源:

<RegionalFcst xmlns="www.metoffice.gov.uk/xml/metoRegionalFcst" createdOn="2016-01-13T02:14:39" issuedAt="2016-01-13T04:00:00" regionId="se">
 <FcstPeriods>
  <Period id="day1to2">
   <Paragraph title="Headline:">Frosty start. Bright or sunny day.</Paragraph>
   <Paragraph title="Today:">A clear and frosty start in west, but cloudier in Kent with isolated showers. Then dry with sunny periods.
    Increasing cloud in west later will bring coastal showers with freshening southerly winds. Chilly inland, but less cold near coasts.
     Maximum Temperature 8C.</Paragraph>
  </Period>
 </FcstPeriods></RegionalFcst>

我的XSLT:

<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0"xmlns:xsl=" 
<xsl:template match="/">
  <html>
  <body>
   <xsl:value-of select="FcstPeriods/Period/Paragraph"/>
  </body>
  </html></xsl:template></xsl:stylesheet>

我已经把词根改成/RegionalFcst并尝试了其他类似的更改,例如在Fcstperiods之前添加一个前导斜杠,但是在我从源XML中删除第一行和最后一行之前,没有什么工作有效-然后它就完美地工作了。

这在测试中很好,但是我当然想使用MetOffice提供的Web服务,他们就是这样呈现的。

有什么想法吗?


千万里不及你
浏览 701回答 3
3回答

犯罪嫌疑人X

问题:XML将其元素放在命名空间.解:在样式表中声明相同的名称空间,为其分配一个前缀,并使用该前缀来处理源XML中的元素:XSLT1.0<xsl:stylesheet&nbsp;version="1.0"xmlns:xsl="&nbsp; exclude-result-prefixes="met"><xsl:template&nbsp;match="/"> &nbsp;&nbsp;<html> &nbsp;&nbsp;<body> &nbsp;&nbsp;&nbsp;<xsl:value-of&nbsp;select="met:RegionalFcst/met:FcstPeriods/met:Period/met:Paragraph[@title='Headline:']"/> &nbsp;&nbsp;</body> &nbsp;&nbsp;</html></xsl:template></xsl:stylesheet>

MMMHUHU

下面是您的xsl所需的简单更改。来自:&nbsp;<xsl:value-of select="FcstPeriods/Period/Paragraph"/>致:&nbsp;<xsl:value-of select="//*:FcstPeriods/*:Period/*:Paragraph"/>
打开App,查看更多内容
随时随地看视频慕课网APP