В настоящий момент я нахожусь в запасе, выясняя, как вставить HTML-тег вне выбранного тега.Как вставить HTML-тег вне выбранного тега?
Что я загружаю по HtmlDocument - это текстовый файл, содержащий «некоторые» HTML-теги. Это не HTML-документ, содержащий тег, но это текстовый файл с «некоторыми» тегами HTML.
вот содержание образца текстового файла
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas vel risus id velit iaculis elementum egestas vel purus. Vestibulum ante ipsum primis in <a href="http://www.domain.com">this domain</a> faucibus orci luctus et ultrices posuere cubilia Curae; In lorem enim, dignissim id congue at, malesuada vitae sem. Phasellus et nibh venenatis, vulputate elit ut, consectetur tellus.
Sed placerat ex et dolor lobortis convallis. Nulla tincidunt elementum elementum. Integer lacinia elementum orci, ac pretium lacus hendrerit eu. Donec vitae lorem leo. Curabitur placerat sagittis nisi eu posuere. Vestibulum eget felis nisi. Nunc vitae enim iaculis, <a href="http://www.domain.com">this domain</a> maximus justo ullamcorper, imperdiet felis. Vestibulum vestibulum sapien id diam dapibus pharetra. Pellentesque varius purus justo, a vehicula lectus semper at.
Есть два тега А там и мой XPath просто просто, как «// а». Моя цель есть, чтобы украсить Тег вокруг с B, U или I. Выход хотел
<b><u><a href="http://www.domain.com">this domain</a></u></b>
Я надеялся HtmlNode.InsertBefore бы помочь, но то, что произошло, как этот
<a href="http://www.domain.com">this domain<b></b><u></u></a>
если используется HtmlNode.InsertAfter, она будет выглядеть следующим образом
<a href="http://www.domain.com"><b></b><u></u>this domain</a>
в обоих InsertBefore и InsertAftere, это требует Reference Node, нет опорного узла, так что я просто установить нулевую
Вот пример кода
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(this.document);
HtmlNodeCollection nodcoll = doc.DocumentNode.SelectNodes("//a");
if (nodcoll != null)
{
foreach (HtmlNode nod in nodcoll)
{
// nod.InsertAfter(HtmlNode.CreateNode(newhtml), null);
// nod.InsertBefore(HtmlNode.CreateNode(newhtml), null);
}
}
обновление Я забыл упомянуть, что это предпочтение SEO о форматировании тега. Если форматирование было внутри тэга, то это будет намного проще
с JQuery обходе через DOM является ветер :) – Milkmannetje
возможно дубликат [Surround существующего узла с другой узел с Agility Pack] (http://stackoverflow.com/questions/11540415/surround-existing-node-with-another-node-with-agility-pack) –