Вот как я получаю свой элемент, он получает элемент просто отлично, как я делаю это по Id, а не по XPATH. У меня проблемы с самим свойством InnerText, и как происходит форматирование. HtmlNode option = doc.GetElementbyId ("pur_li");

я есть список следующих элементов внутри элемента, который я нашел с помощью HTMLAgilityPack.

<option value="67"><span style="color: #cc0000;">Horde</span> Leveling / Dailies & Event Guide ($50.00)</option>

Что мне нужно сделать, так это разобрать весь текст из тега, без всякого там огромного объема. Я попробовал (казалось бы!) Все, но это всегда выглядит так:

орда
Выравнивание / ежедневные газеты и гиды ($ 50,00)

а иногда как:

орда
нивелирование
/ Ежедневники и путеводитель ($ 50,00)

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

<option value="13"><span style="color: #0000ff;">Alliance</span> Leveling Guide ($30.00)</option>


<option value="12"><span style="color: #cc0000;">Horde</span> Leveling Guide ($30.00)</option>

<option value="46"><span style="color: #cc0000;">Horde</span> Dailies & Events Guide ($25.00)</option>

<option value="67"><span style="color: #cc0000;">Horde</span> Leveling / Dailies & Event Guide ($50.00)</option>


<option value="11"><span style="color: #0000ff;">Alliance</span> &amp; <span style="color: #cc0000;">Horde</span> Leveling Guide ($50.00)</option>

<option value="97"><span style="color: #0000ff;">Alliance</span> Achievements & Professions Guide ($20.00)</option>

<option value="98"><span style="color: #cc0000;">Horde</span> Achievements & Professions Guide ($20.00)</option>


<option value="99"><span style="color: #0000ff;">Alliance</span> &amp; <span style="color: #cc0000;">Horde</span> Achievements & Professions Guide ($30.00)</option>
 Ozzy21 янв. 2011 г., 09:08
Можете ли вы показать нам свой код? Используете ли вы InnerText-свойство html-узлов между прочим?

Ответы на вопрос(1)

<OPTION> Html Agility Pack рассматривает тег как «пустой», что означает, что ему не нужно закрывать</OPTION>Вот почему в этом случае нелегко поймать с XPATH. Вы можете изменить это с помощью коллекции HtmlNode.ElementFlags.

Вот код, который должен делать то, что вы хотите:

HtmlDocument doc = new HtmlDocument();
HtmlNode.ElementsFlags.Remove("option");
doc.LoadHtml(yourHtml);
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//option"))
{
    Console.WriteLine(node.InnerText);
}
 Tanner22 янв. 2011 г., 02:17
Вот как я получаю свой элемент, он получает элемент просто отлично, как я делаю это по Id, а не по XPATH. У меня проблемы с самим свойством InnerText, и как происходит форматирование. HtmlNode option = doc.GetElementbyId ("pur_li");

Ваш ответ на вопрос