반응형

C# -- IE automation #4 -- html 구조 파헤치기


참고 : https://msdn.microsoft.com/ko-kr/library/system.windows.forms.htmldocument(v=vs.110).aspx 

         --> HtmlDocument 클래스 (mshtml 과는 약간 다르지만, 비슷한 사용법이다.)

       https://msdn.microsoft.com/ko-kr/library/aa703928(v=vs.85).aspx -->IHTMLElementCollection interface


       https://msdn.microsoft.com/ko-kr/library/aa752279(v=vs.85).aspx  --> IHTMLElement interface

       https://msdn.microsoft.com/ko-kr/library/aa704078(v=vs.85).aspx --> IHTMLDOMNode interface

       https://msdn.microsoft.com/ko-kr/library/hh870185(v=vs.85).aspx --> nodeType




<< 미션 >> 

mshtml.IHTMLElement 과 mshtml.IHTMLDOMNode 의 사용법을 알아보자.




** IE (internet explorer) 통하여 읽어들인 HTML 구성 요소들을 분석하기 위해서는 2가지 접근 방법을 고려하자.

  1. mshtml.IHTMLElement 사용하여 각각의 요소를 접근 분석한다.

  2. mshtml.IHTMLDOMNode 를 사용하여 각각의 node 에 접근 분석한다.




<< 1. mshtml.IHTMLElement 사용하기 >>




            mshtml.HTMLDocument doc = IE.Document;

            

            doc.getElementById  --> mshtml.IHTMLElement 반환  ==> 바로 사용가능

            doc.getElementsByTagName  --> mshtml.IHTMLElementCollection 반환  ==> for loop 사용

            doc.getElementsByName  --> mshtml.IHTMLElementCollection 반환  ==> for loop 사용





<< 2. mshtml.IHTMLDOMNode 사용하기 >>




-- 33번째 줄의 출력 결과 해석 

   ; Console.WriteLine(node.ToString()); 

   ;  mshtml.IHTMLDOMNode node.ToString() 을 의미함. 


mshtml.HTMLHtmlElementClass       <html>

mshtml.HTMLHeadElementClass     <head>

mshtml.HTMLBodyClass   <body>


mshtml.HTMLDivElementClass       <div>


mshtml.HTMLHeaderElementClass   <h1>, <h2>, ...


mshtml.HTMLBRElementClass   <br>


mshtml.HTMLParaElementClass       <p>




*** mshtml.IHTMLDOMNode 에서는 nodeType 이 text node 인 경우, 

  mshtml.IHTMLElement 인 경우에는 인식못하는 공백도 인식한다.




반응형
Posted by 자유프로그램
,