Хотя другой ответ уже принят, в вашем коде нет ничего плохого, и предлагаемый ответ на самом деле не помогает вам. И просто чтобы быть ясным, я не критикую Алекса, который не имел возможности разобраться с этим, так как соответствующая информация не была предоставлена (но она есть в ОП next и впоследствии вопросов). Preethi, вы просто не понимаете, что вы смотрите в загруженном файле RSS.
RSS - это формат на основе XML. Взгляните на пример на этой странице, потому что он использует простой текст. Загружаемый файл будет в этом формате. Но я предполагаю (основываясь на этом вопросе и ваших следующих двух вопросах по той же теме), что файл RSS, на который вы указываете, содержит в данных HTML, а не простой текст.
Проблема в том, что HTML довольно часто использует <
и >
, поэтому вы заметите, что он делает с ними что-то странное - он превращает их в <
и >
. Это необходимо сделать, потому что значение, содержащее HTML, находится в определении XML файла RSS.
Позвольте мне использовать аналогию ... Это очень похоже на проблему, которая возникает у вас, когда вы хотите создать строку, содержащую двойные кавычки. Строки используют двойные кавычки в качестве терминаторов, поэтому вы не можете сделать:
string hello="hello"world";
потому что C # видит открывающую двойную кавычку и затем ищет закрывающую двойную кавычку, и находит слово после слова hello
. Поэтому вам нужно экранировать этого символа, чтобы он понял, что это не конец строки. Вы должны сделать:
string hello="hello\"world";
То же самое относится и к XML. Формат XML полностью зависит от символов <
и >
(среди прочего). Так что, если бы у меня была какая-то поговорка XML:
<item>
<title>Example entry</title>
</item>
это было бы хорошо; но если я просто заменил простой текст «Пример записи» на кусок HTML:
<item>
<title><html><td bgcolor="#f0f0f0" width=20% valign=top></html></title>
</item>
Тогда это будет проблемой, потому что значение внутри тега title
будет вызывать проблемы. Одна из проблем заключается в том, что это не правильно сформированный XML (например, потому что нет закрывающего тега td
и атрибуты не должны заключаться в кавычки; поскольку HTML является , а не XML) , Другая проблема заключается в том, что это нарушит определение формата RSS, поскольку тег «title» должен содержать значение, а не другие теги. Поэтому нам нужно экранировать значение в теге title следующим образом:
<item>
<title><html><td bgcolor="#f0f0f0" width=20% valign=top></html></title>
</item>
И это будет то, что вы видите в своем файле RSS.
Поэтому я считаю, что ответ, который вы на самом деле искали, заключался в том, что вам нужно обработать возвращаемый файл RSS как файл XML (попробуйте использовать XmlDocument.Load (uri) или XDocument .Load (uri) с URL вашего RSS-канала.
Как только вы получите его в виде XML-документа и просмотрите значения в файле RSS, вы увидите, что значения были правильно декодированы из экранирующего XML-кода, поэтому значения HTML будут фактически выглядеть как HTML, без каких-либо нужно что-то декодировать.
Надеюсь, это поможет.