Невозможно манипулировать строкой - PullRequest
0 голосов
/ 23 октября 2010

На моем веб-сайте есть скрипт, который возвращает текущую песню, воспроизводимую с моего сервера 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

проблема в том, что по какой-то причине массив строк всегда пуст, на самом деле я вообще не могу делать никаких манипуляций (удаление, подстрока. 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

есть идеи, почему?

Ответы [ 3 ]

1 голос
/ 23 октября 2010

Используйте это ...

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 голосов
/ 23 октября 2010

Немного удар, но попробуйте:

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 голосов
/ 23 октября 2010

Попробуйте:

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