Главная страница
    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.047 c
15-1250820480
Alkid
2009-08-21 06:08
2009.10.25
Ура!


2-1251194637
Kolan
2009-08-25 14:03
2009.10.25
Чем отличается закрытие по «крестику» и по Alt+F4?


2-1251882705
sanx
2009-09-02 13:11
2009.10.25
Получить от компилятора текущую дату в констатнту, как?


15-1250800206
Юрий
2009-08-21 00:30
2009.10.25
С днем рождения ! 21 августа 2009 пятница


4-1220526205
Vlad Oshin
2008-09-04 15:03
2009.10.25
Не происходит сообщения WM_SETFOCUS,WM_KILLFOCUS





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский