Я очищаю некоторые данные, используя HtmlAgilityPack.HtmlAgilityPack NextSibling.InnerText значение пусто
HTML, выглядит следующим образом:
<div id="id-here">
<dl>
<dt> Field Name </dt>
<dd> Value for above field name </dd>
<dt> Field Name </dt>
<dd> Value for above field name </dd>
<dt> Field Name </dt>
<dd> Value for above field name </dd>
</dl>
</div>
Теперь проблема у меня есть, что не всегда есть определенное количество полей, так что я не могу надежно получить доступ к каждому из них нравится:
//*[@id="id-here"]/dl[1]/dd[1]
поскольку dd [1] может быть именем на одной странице и телефоном на другом, где пользователь не смог заполнить имя, поэтому поле скрыто.
, так что я захватить все DT и DD узлы следующим образом:
//*[@id="id-here"]/dl[1]/dt | //*[@id="id-here"]/dl[1]/dd
Теперь я проверяю каждый узел, чтобы увидеть, если он соответствует поле я хочу, и принимает значение NextSibling так:
foreach (HtmlNode node in details)
{
if (node.InnerText.Contains("Tel:")) telephone = node.NextSibling.InnerText;
if (node.InnerText.Contains("Email:")) email = node.NextSibling.InnerText;
}
Это нормально работает для телефона, но по какой-то причине, когда появляется узел «Email:», оба NextSibling.InnerHTML
& NextSibling.InnerText
пустые, хотя у следующего брата определенно есть данные. Если я действительно перейду к этому node
в details
и посмотрю на него InnerHTML
- вся отформатированная ссылка, а InnerText
- это адрес электронной почты.
Не работает ли NextSibling.InnerText
, потому что тег A делает его ребенком или чем-то еще? Я посмотрел в отладчике и просто не могу найти нужную мне информацию под NextSibling
.
Я уверен, что ответ смехотворно прост, я просто не могу понять это. Кто-нибудь вывел меня из моих страданий?
Относительно отдельный вопрос, но почему вы выбираете элементы 'dd', если вы на самом деле не планируете использовать выбранные' dd 'как вы итерации через' details'? – JLRishe
Чтобы я мог выбрать nextSibling. Если я не выберу DD, то они не будут там, чтобы быть следующей. – Guerrilla
Содержимое 'details' не имеет отношения к тому, что есть у братьев и сестер, и именно это вы видите здесь. – JLRishe