HtmlAgilityPack HtmlNode как получить теги <select>и <option> - PullRequest
0 голосов
/ 24 апреля 2011

Я использую HtmlAgilityPack HtmlNode и хочу получить

<select> and <option> and all other html tags.

В настоящее время HtmlNode анализирует только теги html, table, div, ....Как я могу получить вариант и выбрать тег тоже.

Мой текущий код:

if (htmlContent != null)
{
    doc.LoadHtml(htmlContent);

    if (doc.DocumentNode.SelectNodes("//*") == null)
    {
        List<TagValuePair> tempList = new List<TagValuePair>();
        tempList.Add(new TagValuePair("Error!", htmlContent, -1));
        return tempList;
    }

    foreach (HtmlNode tag in doc.DocumentNode.SelectNodes("//*"))
    {
        try
        {
            if (!string.IsNullOrEmpty(tag.InnerHtml))
            {
                if (!tagAppearance.Keys.Contains(tag.Name))
                {
                    tagAppearance.Add(tag.Name, 1);
                }
                else
                    tagAppearance[tag.Name] = tagAppearance[tag.Name] + 1;

                tagsValues.Add(
                    new TagValuePair(tag.Name, tag.InnerHtml.Trim(),
                    tagAppearance[tag.Name])
                );
            }
        }
        catch
        {
            return null;
        }
    }
}

Я пытаюсь с

doc.DocumentNode.SelectNodes("//option"); 

, и я получаю теги параметров, но не другие.Как получить все опции + и выбрать

РЕДАКТИРОВАТЬ:

необходимо получить все данные из опции из этого HTML:

<select onchange="javascript:submitGlobalDiscountSvetisce(this.value);submitGlobalDiscount(this.value);" name="datumper">
                  <option value="18.6.2011|7">18.jun. 7 noči od 515,00&nbsp;EUR</option>
<option value="25.6.2011|7">25.jun. 7 noči od 515,00&nbsp;EUR</option>
<option value="2.7.2011|7">2.jul. 7 noči od 515,00&nbsp;EUR</option>
<option value="9.7.2011|7">9.jul. 7 noči od 515,00&nbsp;EUR</option>
<option value="16.7.2011|7">16.jul. 7 noči od 515,00&nbsp;EUR</option>
<option value="23.7.2011|7">23.jul. 7 noči od 515,00&nbsp;EUR</option>
<option value="30.7.2011|7">30.jul. 7 noči od 529,00&nbsp;EUR</option>
<option value="6.8.2011|7">6.avg. 7 noči od 529,00&nbsp;EUR</option>
<option value="13.8.2011|7">13.avg. 7 noči od 529,00&nbsp;EUR</option>
<option value="20.8.2011|7">20.avg. 7 noči od 529,00&nbsp;EUR</option>
<option value="3.9.2011|7">3.sep. 7 noči od 487,00&nbsp;EUR</option>
<option value="10.9.2011|7">10.sep. 7 noči od 487,00&nbsp;EUR</option>
<option value="17.9.2011|7">17.sep. 7 noči od 487,00&nbsp;EUR</option>
<option value="24.9.2011|7">24.sep. 7 noči od 487,00&nbsp;EUR</option>
<option value="1.10.2011|7">1.okt. 7 noči od 529,00&nbsp;EUR</option>
<option value="8.10.2011|7">8.okt. 7 noči od 529,00&nbsp;EUR</option>
<option value="15.10.2011|7">15.okt. 7 noči od 529,00&nbsp;EUR</option>
<option value="22.10.2011|7">22.okt. 7 noči od 567,00&nbsp;EUR</option>
<option value="29.10.2011|7">29.okt. 7 noči od 567,00&nbsp;EUR</option>

                </select>

Ответы [ 2 ]

3 голосов
/ 24 апреля 2011

По умолчанию теги OPTION обрабатываются специально (по историческим причинам).См. Мой ответ в этой теме здесь на SO: Синтаксический анализ HTML-тега чтения содержимого с помощью HtmlAgillityPack

0 голосов
/ 26 августа 2011

вы можете использовать html.DocumentNode.SelectSingleNode ("// select [@ id = 'idElement']"). OuterHtml эта строка приносит выбор и параметры.

Счастливые коды

...