C# 通过 HtmlDocument 操作HTML节点
来源:互联网 发布:深圳中航软件 编辑:程序博客网 时间:2024/04/25 07:11
C# 通过 HtmlDocument 操作HTML节点时,会发生不停地刷新的情况,在对html文档操作后加以判断即可解决这种问题。
Public Sub setMainUlr(ByVal WebBrowser1 As WebBrowser)
Dim pElem As HtmlElement = Nothing
'即时信息页面
pElem = WebBrowser1.Document.All("myFrame")
If Not pElem Is Nothing Then
If pElem.GetAttribute("src") <> myFrameUrl Then
Dim ax As AccessXml = New AccessXml()
pElem.SetAttribute("src", myFrameUrl)
End If
End If
'展示图片页面
pElem = WebBrowser1.Document.All("slice")
If Not pElem Is Nothing Then
If pElem.GetAttribute("src") <> pictureUrl Then
Dim ax As AccessXml = New AccessXml()
pElem.SetAttribute("src", pictureUrl)
End If
End If
End Sub
通用方法:
private void DisplayCustomersTable(){ DataSet customersSet = new DataSet(); DataTable customersTable = null; SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM Customers", "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"); sda.Fill(customersTable); customersTable = customersSet.Tables[0]; if (webBrowser1.Document != null) { HtmlElement tableRow = null; HtmlElement headerElem = null; HtmlDocument doc = webBrowser1.Document; HtmlElement tableElem = doc.CreateElement("TABLE"); doc.Body.AppendChild(tableElem); HtmlElement tableHeader = doc.CreateElement("THEAD"); tableElem.AppendChild(tableHeader); tableRow = doc.CreateElement("TR"); tableHeader.AppendChild(tableRow); foreach (DataColumn col in customersTable.Columns) { headerElem = doc.CreateElement("TH"); headerElem.InnerText = col.ColumnName; tableRow.AppendChild(headerElem); } // Create table rows. HtmlElement tableBody = doc.CreateElement("TBODY"); tableElem.AppendChild(tableBody); foreach (DataRow dr in customersTable.Rows) { tableRow = doc.CreateElement("TR"); tableBody.AppendChild(tableRow); foreach (DataColumn col in customersTable.Columns) { Object dbCell = dr[col]; HtmlElement tableCell = doc.CreateElement("TD"); if (!(dbCell is DBNull)) { tableCell.InnerText = dbCell.ToString(); } tableRow.AppendChild(tableCell); } } }}
例子:
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.DocumentText =
"<html><body>Please enter your name:<br/>" +
"<input type='text' name='userName'/><br/>" +
"<a href='http://www.microsoft.com'>continue</a>" +
"</body></html>";
webBrowser1.Navigating +=
new WebBrowserNavigatingEventHandler(webBrowser1_Navigating);
}
private void webBrowser1_Navigating(object sender,
WebBrowserNavigatingEventArgs e)
{
System.Windows.Forms.HtmlDocument document =
this.webBrowser1.Document;
if (document != null && document.All["userName"] != null &&
String.IsNullOrEmpty(
document.All["userName"].GetAttribute("value")))
{
e.Cancel = true;
System.Windows.Forms.MessageBox.Show(
"You must enter your name before you can navigate to " +
e.Url.ToString());
}
}
提供对 WebBrowser 控件承载的 HTML 文档的顶级编程访问。
HtmlDocument 类型公开以下成员。
方法名称 说明 AttachEventHandler为已命名的 HTML DOM 事件添加事件处理程序。CreateElement新建一个指定 HTML 标记类型的 HtmlElement。DetachEventHandler从 HTML DOM 上的命名事件中移除事件处理程序。Equals确定指定的 Object 是否等于当前的 Object。 (重写 Object..::.Equals(Object)。)ExecCommand对文档执行指定的命令。Finalize允许 Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。 (继承自 Object。)Focus在当前文档上设置用户输入焦点。GetElementById将元素的 ID 属性用作搜索键来检索单个 HtmlElement。GetElementFromPoint检索位于指定工作区坐标位置的 HTML 元素。GetElementsByTagName检索具有指定 HTML 标记的元素集合。GetHashCode用作特定类型的哈希函数。 (重写 Object..::.GetHashCode()()()。)GetType获取当前实例的 Type。 (继承自 Object。)InvokeScript已重载。 执行在 HTML 页面中定义的动态脚本函数。MemberwiseClone创建当前 Object 的浅表副本。 (继承自 Object。)OpenNew获取一个新的 HtmlDocument 以便与 Write 方法一起使用。ToString返回表示当前 Object 的 String。 (继承自 Object。)Write编写一个新的 HTML 页。页首运算符名称 说明 Equality Inequality 页首属性名称 说明 ActiveElement提供当前具有用户输入焦点的 HtmlElement。ActiveLinkColor获取或设置超链接被用户单击后的 Color。All获取 HtmlElementCollection 的实例,该实例存储文档的所有 HtmlElement 对象。BackColor获取或设置 HTML 文档的背景色。Body获取 BODY 标记的 HtmlElement。Cookie获取或设置与此文档关联的 HTTP Cookie。DefaultEncoding获取默认情况下为当前文档使用的编码。Domain获取或设置字符串,描述用于安全目的的此文档的域。DomDocument获取此 HtmlDocument 的非托管接口指针。Encoding获取或设置此文档的字符编码。Focused获取一个值,该值指示文档是否具有用户输入焦点。ForeColor获取或设置文档的文本颜色。Forms获取文档中所有 <FORM> 元素的集合。Images获取文档中所有图像标记的集合。LinkColor获取或设置超链接的颜色。Links获取此 HTML 文档中所有超链接的列表。RightToLeft获取或设置当前文档中文本的方向。Title获取或设置当前 HTML 文档中 <TITLE> 标记的文本值。Url获取描述此文档位置的 URL。VisitedLinkColor获取或设置用户已经访问的链接(指向 HTML 页)的颜色。Window获取与此文档关联的 HtmlWindow。
- C# 通过 HtmlDocument 操作HTML节点
- c#操作通过button控制viewtree节点的改变
- html节点操作
- C# 下控制 WebBrower 以及 HtmlDocument
- C#中通过XmlDocument操作Xml文档(新建XML、新增节点、删除节点、显示文档内容)
- 通过 DOM访问 HTML 文档中的节点
- 通过jquery获取当前的html节点
- C#自定义ConfigSections节点操作
- DOM4J中通过XPath操作DOM节点
- 通过节点JavaScript操作改变文字大小
- HTML--通过JavaScript操作HTML的Table
- HTML--通过JavaScript操作HTML的Table
- jquery的节点操作html text append
- C# 通过NPOI操作Excel
- C#操作配置文件中appSettings,connectionStrings节点
- C#操作配置文件中appSettings,connectionStrings节点
- c# Linq操作XML,查找节点数据
- 通过 DOM您可访问 HTML 文档中的每个节点
- 技术博客开张
- Android中利用LinearLayout动态添加控件
- DShow中实现抓图的几种方法
- (转)一个Java程序员应该掌握的10项技能
- 基本原理
- C# 通过 HtmlDocument 操作HTML节点
- PROTEL 四层板设计
- 关于static指针的一个严重问题
- android rootfs制作
- 帮你更好管理XP系统!5款系统插件推荐
- TIM 之性能问题讨论
- windows XP下,vs2005开发环境- 安装orge
- CentOS 5.3下yum安装xen
- ssh单元测试