Правильнее так, это я описАлся

:
document
|
|-anchors(коллекция элементов anchor)
|
...
Поэтому и надо IHTMLAnchorElement использовать, а
не IHTMLLinkElement (он для тега <LINK>... используется)!
Получил объектную модел html-документа.
Нужно найти определенную ссылку и заменить её на мою.
Подскажите, пожалуйста, как это сделать.
Вообщето регулярным выражением можно.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
RC>Здравствуйте, Аноним, Вы писали:
А>>Получил объектную модел html-документа.
А>>Нужно найти определенную ссылку и заменить её на мою.
А>>Подскажите, пожалуйста, как это сделать.
Проверяй на соответствие и подменяй:
foreach(object obj in document.links)
if(obj.href == "нечто")
{
obj.href = "новое_нечто";
}
href — значение типа string
Шпора:
document
|
|-links(коллекция элементов link)
|
...
Какие у link свойства смотри тут:
W3C HTML 4.0 Specification
мне такой вариант не подходит
Здравствуйте, RagiC, Вы писали:
RC>>Здравствуйте, Аноним, Вы писали:
А>>>Получил объектную модел html-документа.
А>>>Нужно найти определенную ссылку и заменить её на мою.
А>>>Подскажите, пожалуйста, как это сделать.
RC>Проверяй на соответствие и подменяй:
RC>RC>foreach(object obj in document.links)
RC>if(obj.href == "нечто")
RC>{
RC> obj.href = "новое_нечто";
RC>}
RC>
RC>href — значение типа string
RC>Шпора:
RC>RC>document
RC> |
RC> |-links(коллекция элементов link)
RC> |
RC>...
RC>
RC>Какие у link свойства смотри тут: W3C HTML 4.0 Specification
Хмм.. Вопрос всё ещё не решен
пишу
foreach(object obj in document.links)
if(((IHTMLLinkElement)obj).href == "нечто")
{
((IHTMLLinkElement)obj).href = "новое_нечто";
}
или
foreach(IHTMLLinkElement obj in document.links)
if(obj.href == "нечто")
{
obj.href = "новое_нечто";
}
Везде InvalidCastException. Как нужно правильно?
Здравствуйте, Аноним, Вы писали:
А>Везде InvalidCastException. Как нужно правильно?
Извинямса!
Вот рабочий пример:
static void Main(string[] args)
{
HTMLDocumentClass document = new HTMLDocumentClass();
IHTMLDocument2 idoc = document as IHTMLDocument2;
if(idoc != null)
{
idoc.write("<html><body><a href=\"http://www.sex.com/1.html\">1</a><a href=\"http://www.sex.com/2.html\">2</a><a href=\"http://www.sex.com/3.html\">3</a></body></html>");
Console.WriteLine(idoc.body.innerHTML);
IHTMLElementCollection col;
IHTMLAnchorElement this_link;
col = idoc.links;
foreach(object link in col)
{
if(link is IHTMLAnchorElement)
{
this_link = (IHTMLAnchorElement)link;
if(this_link.href == "http://www.sex.com/3.html")
{
this_link.href = "http://www.sex.com/4.html";
}
}
}
Console.WriteLine("\n_________________________________________________________________\n");
Console.WriteLine(idoc.body.innerHTML);
}
}