I. az
Demo Bu XPath 2.0 ifade:
substring-after(tokenize($pUrl, '[?|&]')[starts-with(., 'v=')], 'v=')
aranan, doğru sonucu üretir. Burada
tokenize(tokenize($pUrl, '[?|&]')[starts-with(., 'v=')], '=')[2]
tam XSLT 2.0 dönüşüm olup:
<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&feature=channel&list=UL'"/>
<xsl:template match="/">
<xsl:sequence select=
"tokenize(tokenize($pUrl, '[?|&]')[starts-with(., 'v=')], '=')[2]"/>
</xsl:template>
</xsl:stylesheet>
bu dönüşüm herhangi bir XML belgesi uygulanır (
Alternatif olarak, bir biraz daha kısa kullanabilir kullanılmıyor, istenilen, doğru sonuç üretildi:
qadqO3TOvbQ
II. Bu XPath 1.0 ifade:
concat
(substring-before(substring-after(concat($pUrl,'&'),'?v='),'&'),
substring-before(substring-after(concat($pUrl,'&'),'&v='),'&')
)
istenilen sonuca üretir.
not Do: Her iki çözüm sonuncusu olduğunda v
adlı sorgu dizesi parametresi birincisi hatta durumda olmasa bile aranan dize ayıklamak.
Sorun, özellikte bitip bitmeyeceğini bilmiyorum ... kullanıcı URL'yi kopyalayıp çalışmasını bekler. Benim işim ne olursa olsun ayrıştırmak. ? V = ve & arasında düşünüyordum, ancak ampersan olmayabilir. – Armstrongest
Tamam ... xmlplayground için tamamen +1 ... BÜYÜK site. Ayrıca, buradaki çözümü '\t
Armstrongest
Teşekkürler - Birkaç hafta önce başlattım.Spread da word :) İhtiyacın olan sonucu aldığına sevindim. – Utkanos