HTMLDocumentClass로 Html 코드 분석(HtmlElement 모든 속성 읽기 방법)
1838 단어 htmlMicrosoftWebBrowser
4
HTMLDocumentClass doc = new HTMLDocumentClass();
IHTMLDocument2 doc2 = doc;
doc2.write(html); //html html
사용 시 doc 객체 childNodes를 반환하기만 하면 됩니다. IHTMLDOMChildrenCollection collect = (IHTMLDOMChildrenCollection)doc.childNodes;
foreach (IHTMLDOMNode node in collect)
{
// ( </a>, HTMLUnknownElementClass)
//
if (!(node is HTMLUnknownElementClass))
{
//
IHTMLAttributeCollection attrs = (IHTMLAttributeCollection)node.attributes;
foreach (IHTMLDOMAttribute attr in attrs)
{
// specified=true
if (attr.specified)
{
}
}
}
}
참고로 IHTMLDOMNode 대상은 사실 모든 노드입니다. (닫는 노드를 포함합니다. 예를 들어 '' 이것도 IHTMLDOMNode라고 합니다.)
그래서 시작의 노드인지 아닌지 판단을 해주시면 HTML Unknown Element Class가 아닌지 판단을 해주시면 됩니다.
여러분이 만약에 웹브라우저를 사용하면 웹브라우저가 제공하는 HtmlElement 대상이 Attribute 속성 집합을 제공하지 않으면 순환을 통해 노드의 모든 속성을 얻을 수 없습니다. 사실 mshtml을 통해 이 문제를 해결할 수 있습니다.DomDocument에서 HTMLDocumentClass로 변환할 수 있습니다.
WebBrowser wb = new WebBrowser();
HTMLDocumentClass cls = (HTMLDocumentClass)wb.Document.DomDocument;
변환 후에 사용된 HTMLDocumentClass는 모든 속성을 조작할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다른 사람의 웹사이트 편집: contenteditable 및 designMode그래도 우리가 그렇게 할 수 있다고 생각하는 것은 멋진 일입니다. 제가 강조하고 싶었던 일종의 관련 API가 실제로 몇 개 있기 때문에 오늘 그것을 가져왔습니다. contenteditable는 "true" 값이 할당...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.