gpt4 book ai didi

parsing - 如何使用 XSLT 解析 YouTube 网址?

转载 作者:行者123 更新时间:2023-12-04 14:48:06 25 4
gpt4 key购买 nike

我想使用 XSLT 解析 youtube 网址,并仅从该网址获取视频 ID。使用 XSLT 执行此操作的最佳方法是什么?

所以,如果网址是:http://www.youtube.com/watch?v=qadqO3TOvbQ&feature=channel&list=UL

我只要qadqO3TOvbQ并将其放入嵌入代码中:

<iframe width="560" height="315" src="http://www.youtube.com/embed/qadqO3TOvbQ" frameborder="0" allowfullscreen=""></iframe>

最佳答案

一、这个XPath 2.0表达式 :

substring-after(tokenize($pUrl, '[?|&amp;]')[starts-with(., 'v=')], 'v=')

产生想要的、正确的结果 .

或者,可以使用稍短的:
tokenize(tokenize($pUrl, '[?|&amp;]')[starts-with(., 'v=')], '=')[2]

这是一个完整的 XSLT 2.0 转换 :
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>

<xsl:param name="pUrl" select=
"'http://www.youtube.com/watch?v=qadqO3TOvbQ&amp;feature=channel&amp;list=UL'"/>

<xsl:template match="/">
<xsl:sequence select=
"tokenize(tokenize($pUrl, '[?|&amp;]')[starts-with(., 'v=')], '=')[2]"/>
</xsl:template>
</xsl:stylesheet>

当此转换应用于任何 XML 文档(未使用)时,会产生所需的正确结果 :
qadqO3TOvbQ

二、这个 XPath 1.0 表达式 :
 concat
(substring-before(substring-after(concat($pUrl,'&amp;'),'?v='),'&amp;'),
substring-before(substring-after(concat($pUrl,'&amp;'),'&amp;v='),'&amp;')
)

产生想要的结果 .

请注意 :

即使查询字符串参数名为 v,这两种解决方案也会提取所需的字符串。不是第一个,甚至在它是最后一个的情况下。

关于parsing - 如何使用 XSLT 解析 YouTube 网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11378564/

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