gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 16:22:18 26 4
gpt4 key购买 nike

我正在尝试使用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中删除第一行和最后一行都没有用,然后它才能正常工作。

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

有任何想法吗?

最佳答案

问题是:您的XML将其元素放在命名空间中。

解决方案:在样式表中声明相同的名称空间,为其分配一个前缀,然后使用该前缀来处理源XML中的元素:

XSLT 1.0

<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>

关于xml - 在删除根节点之前,XSLT转换不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62237358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com