Разбор HTML (получить текст / строку между тегами) - PullRequest
0 голосов
/ 05 мая 2011

У меня есть это:

<div class="ResultItem">
<table border="0" cellpadding="0" cellspacing="0" style="top: 0; left: 0; width: 100%;">
    <tr>
        <td class="result">
            <a href="http://msdn.microsoft.com/en-us/library/system.windows.uielement.aspx" onclick="trackClick(this, '117', 'http\x3a\x2f\x2fmsdn.microsoft.com\x2fen-us\x2flibrary\x2fsystem.windows.uielement.aspx', '1');"><b>UIElement</b> Class &#40;System.Windows&#41;</a>&nbsp;
            <div class="ResultDescription"><b>UIElement</b> is a base class for WPF core level implementations building on Windows Presentation Foundation &#40;WPF&#41; elements and basic presentation characteristics.</div>
            <div class="ResultUrl">msdn.microsoft.com&#47;en-us&#47;library&#47;sy<wbr><a class="wbr"></a>stem.windows.<b>uielement</b>.aspx</div>
        </td>
    </tr>
</table>
</div>

Я хочу извлечь данные из <a>(grab this string)</a> и <div class="ResultDescription">(grab data</div>. Как бы я это сделал?

Ответы [ 5 ]

3 голосов
/ 05 мая 2011

Лучше всего в долгосрочной перспективе использовать специализированную библиотеку HTML-разбора, а не пользовательские манипуляции со строками.Существует транковая версия HtmlAgilityPack , называемая HAPPhone , которая работает на Windows Phone 7. Вам придется загружать ее вручную из codeplex, но все равно лучше, чем писать ее самостоятельно.

1 голос
/ 05 мая 2011

Если ваша цель - прочитать веб-сайт MSDN, у них есть действующий API веб-службы для этого

http://services.msdn.microsoft.com/ContentServices/ContentService.asmx

Таким образом, очистка экрана не требуется. Просто добавьте ссылку на этот URL.

0 голосов
/ 13 мая 2011

Если ваша задача синтаксического анализа только для строки небольшой длины, вы можете проанализировать строку с содержимым html, используя javascript. Следующая строка кода будет использовать регулярное выражение для замены тегов HTML и предоставляет обычный текст.

//Javascript
var normal_text = html_string.replace(/(<.*?>)/ig,"");
0 голосов
/ 05 мая 2011

Чтобы повторить то, что упомянул BrokenGlass, исчерпывающий ответ на Каков лучший способ анализа html в C #? - это использовать библиотеки, такие как HtmlAgilityPack, для телефона это будет означать такие вещи, как HAPPphone

0 голосов
/ 05 мая 2011

Если (и только если!) Ваш HTML-код является допустимым XHTML, вы можете использовать любой анализатор XML, чтобы получить то, что вы хотите.

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