2010-10-23 45 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