首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YQL XSLT实现限制

YQL XSLT实现限制
EN

Stack Overflow用户
提问于 2010-08-18 15:56:19
回答 2查看 546关注 0票数 0

由于某种原因,YQL的XSLT表不能解析我的样式表。我已经在W3C的XSLT服务中成功地使用了样式表。以下是YQL Console中该问题的一个示例。为什么这在YQL中不起作用?

另外,我还没有弄清楚如何将YQL查询的结果作为要转换的XML传递给XSLT表,同时还要指定样式表url。目前的解决方法是滥用W3C的服务。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-18 17:04:19

您的样式表被定义为1.0,但是您使用的是replace()tokenize(),这是2.0标准的一部分。但是,它是一个完全有效的XSLT/XPath2.0样式表。

票数 2
EN

Stack Overflow用户

发布于 2010-08-18 21:23:14

作为对Per T answer的补充,请更改以下内容:

代码语言:javascript
复制
<xsl:variable name="r">
<xsl:value-of select="replace(tr/td/p/a/following-sibling::text(),
                              '\s*-\s*(\d+)\.(\d+)\.(\d+)\s*',
                              '$1,$2,$3')" />
</xsl:variable>

有了这个:

代码语言:javascript
复制
<xsl:variable name="r" 
        select="translate(tr/td/p/a/following-sibling::text(),'. -',',')">

这些是:

代码语言:javascript
复制
tokenize($r,',')[1]

tokenize($r,',')[2]

tokenize($r,',')[3]

有了这些:

代码语言:javascript
复制
substring-before($r,',')

substring-before(substring-after($r,','),',')

substring-after(substring-after($r,','),',')

注意:这只是为了防止你事先不知道数字的数量,否则你可以这样做:

代码语言:javascript
复制
substring($r,1,2)

substring($r,4,2)

substring($r,7)

另外,这是

代码语言:javascript
复制
replace(tr/td/p[@class='t11bold']/a,'\s+',' ')

应该是这样的:

代码语言:javascript
复制
normalize-space(tr/td/p[@class='t11bold']/a)

最后是这个:

代码语言:javascript
复制
replace($d,'^[^\[]*\[\s*(\d+:\d{2})?\s*-?\s*([^\]]*)\]\s*$','$2')

可能是:

代码语言:javascript
复制
normalize-space(substring-after(substring-before(substring-after($d,'['),']'),'-'))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3510006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档