Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];

Вниз

TWebBrowser список ссылок ячейки таблицы   Найти похожие ветки 

 
ford ©   (2009-09-03 12:05) [0]

Здравствуйте!
На форме установлен компонент TWebBrowser, загружаю туда HTML
внутри есть такая табличка
<table class="grid" cellspacing="0">
<tr>
   <th> </th>
   <th>name</th>
   <th>param</th>
   <th>count</th>
   <th>else</th>
   <th colspan="2">doing</th>
</tr>
       <tr class="inactive">
       <td> </td>
       <td nowrap>art</td>
       <td nowrap>100%</td>
       <td nowrap align="right">2</td>
       <td>nothing</td>
               <td colspan="2" align="center"><a href="/positions/clear/art">Clear</a></td>
           </tr>
       <tr>
       <td> </td>
       <td nowrap>canon</td>
       <td nowrap>70%</td>
       <td nowrap align="right">10</td>
       <td>nothing</td>
               <td><a href="/positions/add/1">add</a></td>
       <td><a href="/positions/del/1">del</a></td>
           </tr>
   </table>
достаю текст ячеек таблицы следующим способом

 ovTable := Web.OleObject.Document.all.tags("TABLE").item(1);
  for i := 0 to (ovTable.Rows.Length - 1) do
  begin
    Form1.ListBox1.Items.Add("");
    for j := 0 to (ovTable.Rows.Item(i).Cells.Length - 1) do
    begin
        Form1.ListBox1.Items[Form1.ListBox1.Items.Count-1]:=Form1.ListBox1.Items[Form1.ListBox1.Items.Count-1]+"|"+ovTable.Rows.Item(i).Cells.Item(j).InnerText;
    end;
  end;


с текстом все замечательно
но как вытащить из текущей ячейки ссылку ???
попробовал взять Children текущего IHTMLElement как IHTMDocument и взять его Links но как выяснилось
Children у всех ячеек = nil

можно конечно взять свойство InnerHTML
и парсить строку на наличие там ссылок, но не хочется изобретать велосипед, наверняка есть более изящный способ, например с использованием свойств и методов IHTMLElement

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


 
ford ©   (2009-09-03 14:40) [1]

Хоть хтонибудь бы подсказал что Children это не что иное как IHTMLElementsCollection !!!!

в итоге код такой :

  ovTable := Web.OleObject.Document.all.tags("TABLE").item(0);
  for i := 0 to (ovTable.Rows.Length - 1) do
  begin
    Form1.ListBox1.Items.Add("");
    for j := 0 to (ovTable.Rows.Item(i).Cells.Length - 1) do
    begin
       IDisp:=ovTable.Rows.Item(i).Cells.Item(j).Children;
       IDisp.QueryInterface(IHTMLElementCollection,El);
       ovLinks:=El.tags("a");
       for k:=0 to ovLinks.Length-1 do
        Begin
         IDisp:=OvLinks.Item(k);
         IDisp.QueryInterface(IHTMLElement,ch);
         Form1.ListBox1.Items[Form1.ListBox1.Items.Count-1]:=Form1.ListBox1.Items[Form1.ListBox1.Items.Count-1]+"|"+ch.GetAttribute("href",1);
        End;
       Form1.ListBox1.Items[Form1.ListBox1.Items.Count-1]:=Form1.ListBox1.Items[Form1.ListBox1.Items.Count-1]+"|"+ovTable.Rows.Item(i).Cells.Item(j).InnerText;//+"("+ovTable.Rows.Item(i).Cells.Item(j).GetAttribute("href",0)+")";
    end;
  end;


так я получаю ссылку из выбранной ячейки таблицы


 
Омлет   (2009-09-03 15:26) [2]

Мы дали тебе возможность самому разобраться. Здесь личностный рост превыше куска кода.


 
ford ©   (2009-09-03 16:03) [3]


> Омлет   (03.09.09 15:26) [2]
>
> Мы дали тебе возможность самому разобраться. Здесь личностный
> рост превыше куска кода.


если бы дали ссылку хотябы на кусок MSDN в котором все это написано
то я не потратил бы несколько часов на глупости
а как Вы выразились занимался бы дальнейшим "личностным ростом"


 
Омлет   (2009-09-03 16:10) [4]

Если бы Вы не написали "Хоть хтонибудь бы подсказал", я бы не иронизировал. Честно )


 
KilkennyCat ©   (2009-09-03 18:59) [5]


> если бы дали ссылку хотябы на кусок MSDN

ссылка MSDN находится легко.

> то я не потратил бы несколько часов

поиск в MSDN устроен просто

> на глупости

ты потратил не из-за нас

> занимался бы дальнейшим "личностным ростом"

фигня все это. в 2012 году мы все умрем.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.044 c
2-1251798189
Franzy
2009-09-01 13:43
2009.10.25
Запуск расчета сразу после отрисовки формы


15-1250969752
Gordom
2009-08-22 23:35
2009.10.25
Обновление Adobe Flash


11-1207080348
Lotos
2008-04-02 00:05
2009.10.25
Splitter


15-1250873584
blackman
2009-08-21 20:53
2009.10.25
Российский программист: ничего особенного


15-1251518417
Nic
2009-08-29 08:00
2009.10.25
Западные Финансовые/Деловые СМИ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский