Разделить строку на теги на несколько текстовых полей - PullRequest
0 голосов
/ 12 января 2012

Я больше не знаю, где искать решение.

У меня есть строка, содержащая теги "< p >" и "

", а также "

" и "

" для заголовков и " " для ссылки. Строка передается через app.current на вторую страницу, когда я устанавливаю ее в качестве источника текстового блока, я вижу всю строку.

Теперь моя проблема: Я хочу создать новый TextBlock для каждого "

", который содержит текст до "

". То же самое для заголовков, так как я хочу оформить их по-разному. Ссылки, которые я хочу видеть в списке.

Я попробовал несколько вещей, но не нашел рабочего решения. Моя последняя попытка состояла в том, чтобы работать с этим http://www.eugenedotnet.com/2011/04/binding-text-containing-tags-to-textblock-inlines-using-attached-property-in-silverlight-for-windows-phone-7/. Я не смог изменить это для своих нужд.

Я хотел создать подстроки из моей строки, и для каждой подстроки новый прогон с / или новым TextBlock. Не разобрался.

У меня действительно нет никаких идей для этого. Кто-нибудь есть идеи?

Ответы [ 2 ]

1 голос
/ 12 января 2012

Я бы порекомендовал использовать HtmlAgilityPack для разбора HTML.

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(yourString);

string header = doc.DocumentNode.SelectSingleNode("h1").InnerText;

List<string> paragraphs = doc.DocumentNode.SelectNodes("p")
    .Select(p => p.InnerText).ToList();

Самый простой способ получить HtmlAgilityPack для WP7 - это установить NuGet , щелкнуть правой кнопкой мыши на References и выбрать «Управление пакетами NuGet», а затем поискать «1010» в «Онлайн» для HtmlAgilityPack.

0 голосов
/ 12 января 2012

Чтобы немного расширить ответ Ричарда Сзалая, версия HTML Agility Pack в NuGet, похоже, не включает в себя добавленную реализацию WP7. В этом вопросе есть ссылка на версию HAPPhone, которую можно загрузить со страницы проекта HTML AGility Pack и которая очень хорошо работает на телефоне.

К сожалению, вам придется скачать исходный код и собрать его самостоятельно / добавить ссылку вручную. Я предполагаю, что версия NuGet будет обновлена ​​вовремя, но когда я сделал это на прошлой неделе, это был единственный выход.

...