Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 在删除根节点之前,XSLT转换不起作用_Xml_Xslt - Fatal编程技术网

Xml 在删除根节点之前,XSLT转换不起作用

Xml 在删除根节点之前,XSLT转换不起作用,xml,xslt,Xml,Xslt,我试图使用XSLT从Met Office web服务中从下面的XML中提取标题,但是我的XSLT select返回空白 资料来源: <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

我试图使用XSLT从Met Office web服务中从下面的XML中提取标题,但是我的XSLT select返回空白

资料来源:

<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="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
   <xsl:value-of select="FcstPeriods/Period/Paragraph"/>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>
我已经将根目录更改为/RegionalFcst,并尝试了其他类似的更改,例如在FcstPeriods之前添加一个前导斜杠,但在从源XML中删除第一行和最后一行之前,任何操作都不起作用—然后它就完美地工作了

这在测试中是很好的,但是我当然想使用MetOffice提供的web服务,这就是他们展示它的方式

有什么想法吗?

问题是:XML将其元素放在名称空间中

解决方案:在样式表中声明相同的名称空间,为其指定一个前缀,并使用该前缀来寻址源XML中的元素:

XSLT1.0


这是具有默认名称空间的另一种情况。例如,搜索此网站具体地说,搜索XSLT默认名称空间将带您找到506位提出相同问题的其他人。后续问题。我需要从响应中删除html标记,因为我没有处理web。当我删除,我得到的反应是霜冻开始。晴朗或晴朗的一天。我需要这个没有标签的回复。为什么我会得到这个,我如何删除它?谢谢您的帮助。@hazymat您能编辑您的问题并以代码的形式发布您想要得到的确切结果吗?请忽略我最后的评论,我忘记了我需要包含另一行代码来正确编码我正在使用的系统的输出。所以它按预期工作。再次感谢您的帮助。@michael.hor257k thx,就连我也面临着同样的问题,根据您的建议,它起到了作用。谢谢这也帮助解决了我的问题。应该强调的是,这只适用于默认名称空间xmlns=。。。。如果源xml文件中有任何其他限定名称空间,则必须将它们添加到xsl:stylesheet中,在xpath中使用,而不使用默认名称空间的临时前缀,并将它们添加到以空格分隔的列表中以排除结果前缀。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:met="www.metoffice.gov.uk/xml/metoRegionalFcst"
exclude-result-prefixes="met">
<xsl:template match="/">
  <html>
  <body>
   <xsl:value-of select="met:RegionalFcst/met:FcstPeriods/met:Period/met:Paragraph[@title='Headline:']"/>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>