2015-09-14 2 views
0

Я пытаюсь найти и заменить следующую строкуПочему «string.Contains» не работает

<p><img width="560" height="207" src="~/media/1ECAC40BCE3C43CEA0FEDA423C1EF2D1.ashx" alt="Fifteen years of the NASDAQ" /></p> 
<p><em>Source:&nbsp; Bloomberg, L.P.</em>&nbsp;</p> 

Таким образом, я пытаюсь сначала найти, если строка содержит «IMG»

и это мой код:

// check for image width to change for mobile 
       string gotit = "don't got it"; 
       string imgBody = Text.Render(Item, "Body"); 
       if (imgBody.ToLowerInvariant().Contains("<img width=")) 
        gotit = "got it"; 

но он никогда не меняет gotit. Что я делаю неправильно?

+4

Попытка применять строковые операции в HTML никогда не является хорошей идеей. Почему бы вам не использовать выделенную библиотеку для этой задачи? – walther

+7

Вы выгрузили содержимое imgbody, чтобы посмотреть, что получилось? возможно, это вышло как '

+2

Когда вы просматриваете код, каково значение imgBody прямо перед оператором if? – Kevin

ответ

2

Предполагая, что вы можете получить содержимое HTML правильно с каким-то волшебным способом GetHTMLContents(); ...

var input = GetHTMLContents(); 
var gotIt = input.Contains("<img"); //if present, it will be true else false and more importantly, 'gotIt' is boolean 
Console.WriteLine(gotIt); 

Кроме того, магический метод GetHTMLContents() может выглядеть следующим образом:

//using System.Net; 

using (WebClient client = new WebClient()) 
{ 
    string htmlCode = client.DownloadString("http://somesite.com/default.html"); 
} 
+0

Спасибо за ваше время –

Смежные вопросы