Преобразовать HTML-код в строку .NET - PullRequest
1 голос
/ 27 августа 2010

У меня есть следующий HTML-код:

<P>Notes:&nbsp;&nbsp; Mails: <BR> &nbsp; 1. <A href="mailto:example@mail.com">example@mail.com</A></P>

и, конечно, когда я пытаюсь передать его в строку, это дает мне ошибку:

 string s =  "<P>Notes:&nbsp;&nbsp; Mails: <BR> &nbsp; 1. <A href="mailto:example@mail.com">example@mail.com</A></P>";

Есть ли способ, которым я мог быпросто взять этот HTML и преобразовать его в эквивалент .NET, желательно без изменения формата?

заранее спасибо.

Ответы [ 7 ]

3 голосов
/ 27 августа 2010

Избегайте кавычек:

string s =  "<P>Notes:&nbsp;&nbsp; Mails: <BR> &nbsp; 1. <A href=\"mailto:example@mail.com\">example@mail.com</A></P>";
1 голос
/ 27 августа 2010

Похоже, вы просто должны выйти из кавычек:

 string s =  "<P>Notes:&nbsp;&nbsp; Mails: <BR> &nbsp; 1. <A href=\"mailto:example@mail.com\">example@mail.com</A></P>";

В C # " обозначает начало или конец строки, чтобы использовать " внутри строки, вам необходимо «экранировать» ее следующим образом \". Вы также можете использовать дословные строковые литералы формата

string s = @"this is a string with "" <-- a quote inside";
0 голосов
/ 27 августа 2010

У вас есть несколько вариантов:

Для поддержки времени компиляции вы можете экранировать кавычки с помощью \", как это неоднократно демонстрировали другие (поэтому я не буду повторяться), вы можете использовать буквальную строку @"...", где вы можете экранировать кавычки с помощью "" или вы можете вставить свою строку в файл ресурсов и позволить Visual Studio обработать экранирование для вас.

С другой стороны, вы часто можете обойтись, если заменить двойную кавычку на одну; однако, это может иногда быть проблемой, если ваша строка содержит JavaScript, так как наличие двух типов кавычек под рукой может быть необходимым злом.

Во время выполнения вы можете избежать экранирования, читая текст из файла, базы данных или другого ресурса; однако у меня сложилось впечатление, что это не ваше намерение.

0 голосов
/ 27 августа 2010
string s = "<P>Notes:&nbsp;&nbsp;Mails:<br />&nbsp;1.<A href=\"mailto:example@mail.com\">example@mail.com</A></P>";
0 голосов
/ 27 августа 2010

В C # нет строкового литерала, где вам не нужно экранировать двойные кавычки.

var str1 = "<A href=\"mailto:example@mail.com\">";
var str2 = @"<A href=""mailto:example@mail.com"">";
0 голосов
/ 27 августа 2010
string s =  "<P>Notes:&nbsp;&nbsp; Mails: <BR> &nbsp; 1. <A href=\"mailto:example@mail.com\">example@mail.com</A></P>";

Вы должны экранировать кавычки с косой чертой "\".

0 голосов
/ 27 августа 2010

Попробуйте это:

string s = "<P>Notes:&nbsp;&nbsp; Mails: <BR> &nbsp; 1. <A href='mailto:example@mail.com'>example@mail.com</A></P>";

Вы не можете использовать двойные кавычки внутри строки без экранирования. Или используйте версию, которую я разместил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...