HTML 파싱을 보다 쉽게 할수있게 해주는 무료프레임워크

image

 

예제

BODY 태그의 내용만 가져오기

            HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
            htmlDoc.LoadHtml(q); //<html><body>kojaedoo</body></html>

            HtmlAgilityPack.HtmlNode bodyNode = htmlDoc.DocumentNode.SelectSingleNode("//body");

            if (bodyNode != null)
            {
                // Do something with bodyNode
                var bodyContent = bodyNode.InnerHtml;
            }

 

다른예제

 HtmlDocument doc = new HtmlDocument();
 doc.Load("file.htm");
 foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
 {
    HtmlAttribute att = link["href"];
    att.Value = FixLink(att);
 }
 doc.Save("file.htm");
 
 

다운로드

http://htmlagilitypack.codeplex.com/

 

설정하기

첫번째 행의 DataType을 Boolean으로 설정한다.
 
 
 

선택된 행만 가져오기

 

private void btnDelete_Click(object sender, EventArgs e) { // delete selected rows _flex.Redraw = false; int rowsCnt = _flex.Rows.Count; RowCollection row = _flex.Rows; for (int i = rowsCnt - 1; 0 < i; i--) { Row r = _flex.Rows[i]; var q = r[0]; bool result = false; if (q != null && bool.TryParse(q.ToString(), out result)) { _flex.Rows.Remove(r.Index); } } this._flex.Redraw = true; }


위에처럼 하니 체크를 해제해도 해제가 안된다 ㅡㅡ

체크박스 선택 다른방법으로 가져오기

            for (int i = flexGrid.Rows.Count - 1; 0 < i; i--)

            {

                CheckEnum result = flexGrid.GetCellCheck(i, 0);

                if (result == CheckEnum.Checked)

                {

                    Row r = flexGrid.Rows[i];

                    TestObject dv = r.DataSource as TestObject;

                    Debug.WriteLine(dv.Name);

                }

            }

아래와 같이 실행안된다고 메세지가 뜰땐!

비주얼스튜디오 2012만  깔려있을때 문제발생된다.

image

 

해결방법

샘플실행시키는 폴더로 이동

C:\Program Files (x86)\ComponentOne\C1StartMenu\Studio for WinForms\Samples

 

열리는 아이콘들중에 속성보기를 클릭

image

 

image

-V10 이것을 V11로 바꿔준다 V1* 이게 비주얼 스튜디오 버젼이다.

V11 은 비주얼스튜디오 2012 이고 V10은 2010 이다

 

.

DataMap을 바인딩 하면 DataType 에 맞게

image 왼쪽으로 정렬한다.

이럴 때 DataMap 을 바인딩 해놓고 정렬 하면 된다.

image

 

            Hashtable hash = new Hashtable();
            hash.Add("10", 10);
            hash.Add("20", 40);
            hash.Add("30", 30);
            hash.Add("40", 200);

            _flex.Cols[2].DataType = typeof(int);
            _flex.Cols[2].DataMap = hash;

            _flex.Cols[2].TextAlign = TextAlignEnum.CenterCenter;
            _flex.Cols[2].TextAlignFixed = TextAlignEnum.CenterCenter;

 

+ Recent posts