2010-10-23 49 views
0

在我的网站中,我有一个脚本,它返回从我的shoutcast服务器播放的当前歌曲,格式为:“artist-track”,我想要做的就是接受该字符串并拆分它 2串:艺术家和曲目,为了做到这一点我裹着像这样的服务器代码的脚本:无法操作字符串

<div id="nowPlaying" runat="server"> 
<script type="text/javascript" src="http://shoutcast.mixstream.net/js/song/uk3-free:34588"></script>  
</div> 

,并在后面的代码,我没有财产以后这样的:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 

     Dim query() As String = nowPlaying.InnerText.Split("-") 
     Dim artist As String = query(0) 
     Dim track As String = query(1) 
     Response.Write(artist + "<br />" + track) 

    End Sub 

的问题在于某些reaso n字符串数组实际上是空的,实际上我无法做任何操作(删除,子串。 lastIndexOf等) 它总是似乎是空的。

,但如果我不这样做的字符串一切任何操作就可以了,我可以看到像这样的字符串:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 

     Dim query As String = nowPlaying.InnerText 
     Response.Write(query) 

End Sub 

任何想法,为什么?

+0

@InSane - 没有VB.net – 2010-10-23 10:26:16

+0

您可以发布一个例子串即'nowPlaying.InnerText'的价值? – 2010-10-23 10:27:13

+0

这是在C#中的情况,但在VB.NET中,双引号也是用于字符的,你不能在vb.net中执行(' - ')。 – tone 2010-10-23 10:27:17

回答

1

使用此...

Dim request As HttpWebRequest = WebRequest.Create("http://shoutcast.mixstream.net/js/song/uk3-free:34588") 
Dim response As HttpWebResponse = request.GetResponse() 
Dim reader As StreamReader = New StreamReader(response.GetResponseStream()) 
Dim sTrim = reader.ReadToEnd() 

reader.Close() 
sTrim=sTrim.Replace("document.write('","") 
sTrim=sTrim.SubString(0,sTrim.length-3) 
Dim query() As String = sTrim.Split("-") 

这将加载JS文件作为一个字符串,然后删除document.write语法留下你只是艺术家瓷砖。

+0

,就像一个魅力一样工作!非常感谢您的帮助。 – tone 2010-10-23 14:26:31

+1

要小心,因为诸如撇号(''')等字符可能以HTML安全格式出现,例如'''等。只要注意给它一个很好的测试。我也会认为应该有更强大的方法来检索这些信息?但是,如果它的工作,它的作品! :)谢谢你的勾号。 – 2010-10-23 14:33:19

0

尝试:

Dim query() As String = nowPlaying.InnerText.Split(New [Char]() {"-"c}) 
+0

尝试过,但还没有劈裂... – tone 2010-10-23 10:38:06

+0

尝试:昏暗的查询()作为字符串= “这是A测试” .Split(新[字符](){ “ - ” C}) – 2010-10-23 10:41:54

+0

以“这是-A测试“其工作,与nowPlaying.InnerText.Split仍然无法正常工作。 – tone 2010-10-23 11:13:40

0

位刺,但尝试:

Dim sTrim as String = nowPlaying.InnerText 
sTrim=sTrim.Replace("document.write('","") 
sTrim=sTrim.SubString(0,sTrim.length-3) 
Dim query() As String = sTrim.Split("-") 
+0

不工作... iv'e更新的页面与代码服务器,如果你想看到:HTTP://www.radioz.co.il/iframe/iframe2.aspx – tone 2010-10-23 11:07:23

+0

你能插入的断点我的代码的第二行就在sTrim被初始化之后,看看它设置了什么? – 2010-10-23 11:23:03

+0

<脚本类型=“文/ JavaScript的” SRC =“http://shoutcast.mixstream.net/js/song/uk3-free:34588”>,以及我想现在我们知道为什么它不工作,因为它不是一个实际字符串。我的错,我应该检查它之前,我甚至发布了问题。 – tone 2010-10-23 11:33:52