本文整理汇总了C#中System.Windows.Forms.HtmlDocument类的典型用法代码示例。如果您正苦于以下问题:C# HtmlDocument类的具体用法?C# HtmlDocument怎么用?C# HtmlDocument使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
HtmlDocument类属于System.Windows.Forms命名空间,在下文中一共展示了HtmlDocument类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AttachValueToDataSource
public static void AttachValueToDataSource(DataSet ds, HtmlDocument doc)
{
LoggingService.DebugFormatted("绑定HTML表单数据:{0} 到数据源...", new object[] { doc.Url });
foreach (string str in tags)
{
HtmlElementCollection elementsByTagName = doc.GetElementsByTagName(str);
foreach (HtmlElement element in elementsByTagName)
{
DataRow row;
string attribute = element.GetAttribute("dbtable");
string str3 = element.GetAttribute("dbcolumn");
if (GetDataRow(ds, attribute, out row) && (row != null))
{
if (row.RowState == DataRowState.Unchanged)
{
row.SetModified();
}
if (!(string.IsNullOrEmpty(str3) || !row.Table.Columns.Contains(str3)))
{
string str4 = element.GetAttribute("value").Trim();
row[str3] = (str4 == string.Empty) ? Convert.DBNull : str4;
LoggingService.DebugFormatted("设置表:{0}列:{1}的值为:{2}", new object[] { attribute, str3, str4 });
}
}
}
}
}
示例2: LoadJsFile
public static bool LoadJsFile(HtmlDocument doc, string js)
{
bool noErr = true;
string file = String.Empty;
try
{
string[] files = js.Split(new char[] { ',' });
foreach (string f in files)
{
file = GlobalVar.AppPath + "res\\" + f + ".js";
string s = Utility.ReadFile(file);
noErr &= !String.IsNullOrEmpty(s);
if(String.IsNullOrEmpty(s))
GlobalVar.Log.LogError("取得文件内空为空!",file);
ExecScript(doc, s);
}
doc.Write("<script language='javascript'>alert('hello');</script>");
}
catch (System.Exception )
{
MessageBox.Show("load [" + file + "] error");
return false;
}
return noErr;
}
示例3: DOMTreeToXml
private static XmlDocument DOMTreeToXml(HtmlDocument htmlDoc)
{
XmlDocument result = new XmlDocument();
if(htmlDoc != null &&
htmlDoc.Body != null &&
htmlDoc.Body.Parent != null)
{
HtmlElement topHtml = htmlDoc.Body.Parent;
using (StringReader sReader = new StringReader(topHtml.OuterHtml))
{
using (StringWriter errorLog = new StringWriter())
{
Sgml.SgmlReader reader = new Sgml.SgmlReader();
reader.ErrorLog = errorLog;
reader.InputStream = sReader;
using (StringReader dtdReader = new StringReader(Properties.Resources.WeakHtml))
reader.Dtd = Sgml.SgmlDtd.Parse(null, "HTML", null, dtdReader, null, null, reader.NameTable);
result.Load(reader);
errorLog.Flush();
Console.WriteLine(errorLog.ToString());
}
}
}
return result;
}
示例4: DownloadInfo
public DownloadInfo(Uri projectUrl, Uri articleUrl, HtmlDocument htmlDocument)
{
m_projectUrl = projectUrl;
m_articleUrl = articleUrl;
m_htmlDocument = htmlDocument;
ParseCookies(htmlDocument.Cookie);
}
示例5: Download
public Download(HtmlDocument document, string key, string url, string filename)
{
this.url = url;
this.key = key;
this.document = document;
target = Path.Combine(Path.GetTempPath(), filename);
if (File.Exists(target))
status = DownloadStatus.DOWNLOADED;
else
status = DownloadStatus.AVAILABLE;
downloadBGWorker = new BackgroundWorker()
{
WorkerReportsProgress = true,
WorkerSupportsCancellation = true
};
downloadBGWorker.DoWork += RunDownload;
downloadBGWorker.ProgressChanged += UpdateProgress;
downloadBGWorker.RunWorkerCompleted += DownloadFinished;
extractBGWorker = new BackgroundWorker();
extractBGWorker.DoWork += DoExtraction;
extractBGWorker.RunWorkerCompleted += ExtractionFinished;
}
示例6: ParseSeries
private Series ParseSeries(HtmlDocument doc)
{
var result = new Series();
result.Title = Find(FindTitle, doc);
result.Description = Find(FindDescription, doc);
return result;
}
示例7: DisplayInTree
/// <summary>
/// Display an HTML document in the tree view, organizing the tree
/// in accordance with the Document Object Model (DOM)
/// </summary>
/// <param name="docResponse">the document to display</param>
/// <remarks><para>Called by the thread.start to set up for filling the DOM tree</para>
/// Has to be passed as an object for the ParameterizedThreadStart</remarks>
public void DisplayInTree(HtmlDocument docResponse)
{
HtmlElementCollection elemColl = docResponse.GetElementsByTagName("html");
_treeView.Nodes.Clear();
var rootNode = new TreeNode("Web response") {Tag = -1};
_treeView.Nodes.Add(rootNode);
FillDomTree(elemColl, rootNode, 0);
}
示例8: FindTitle
private string FindTitle(HtmlDocument doc)
{
var result = String.Empty;
IQueryable<HtmlElement> h1HEC = doc.GetElementsByTagName("h1").AsQueryable().Cast<HtmlElement>();
var titleElement = h1HEC.First(e => e.GetAttribute("class") == "title");
return result;
}
示例9: GetOrCreateDocumentHandle
public static HtmlDocumentHandle GetOrCreateDocumentHandle(HtmlDocument htmlDocument)
{
var guidObj = htmlDocument.InvokeScript (c_getDocumentIdentification);
var docID = guidObj != null ? new HtmlDocumentHandle (Guid.Parse (guidObj.ToString())) : new HtmlDocumentHandle (Guid.NewGuid());
htmlDocument.InvokeScript (c_addDocumentIdentification, new object[] { docID.ToString() });
return docID;
}
示例10: Create
public static IBoodProduct Create(HtmlDocument doc)
{
try {
var all = doc.All.Cast<HtmlElement>();
var imgs = doc.Images.Cast<HtmlElement>();
var img = GetElement(all, "IMG", "className", "main-prod-img") ?? imgs.FirstOrDefault(i => i.OuterHtml.Contains("class=main-prod-img"));
var prodName = string.Empty;
var prodImage = string.Empty;
if (img != null) {
prodName = img.GetAttribute("alt");
prodImage = img.GetAttribute("src");
}
var spanOldPrice = GetElement(all, "SPAN", "className", "old-price");
decimal oldPrice = 0;
try {
oldPrice = decimal.Parse(spanOldPrice.InnerText, System.Globalization.NumberStyles.Currency);
}
catch { }
var spanOurPrice = GetElement(all, "P", "className", "our-price");
decimal ourPrice = 0;
decimal shippingCost = 0;
try {
// "iBOOD PrijsNu! € 149,95 + (8,95) "
var priceParts = spanOurPrice.InnerText.Split(new char[] {'€', ' ', '+', '(' ,')'}, StringSplitOptions.RemoveEmptyEntries );
shippingCost = decimal.Parse(priceParts[2]);
ourPrice = decimal.Parse(priceParts[3]); //decimal.Parse(spanOurPrice.InnerText, System.Globalization.NumberStyles.Currency);
}
catch { }
var divIsSoldOut = GetElement(all, "DIV", "id", "issoldout");
var isSoldOut = divIsSoldOut != null && divIsSoldOut.Style.ToLower() == "display:none";
var aMoreInfo = GetElement(all, "A", "id", "speclink");
var moreInfoUri = aMoreInfo.GetAttribute("href");
var aBuyNow = GetElement(all, "A", "id", "btnbuy");
var buyNowUri = aBuyNow.GetAttribute("href");
return new IBoodProduct {
Name = prodName,
ImageUri = new Uri(prodImage),
Status = isSoldOut ? ProductStatus.IsSoldOut : ProductStatus.NotSoldOut,
RegularPrice = oldPrice,
OurPrice= ourPrice ,
ShippingCost = shippingCost,
MoreInfoUri = new Uri(moreInfoUri),
BuyNowUri = new Uri(buyNowUri)
};
}
catch { }
return null;
}
示例11: HtmlDocumentAdapter
public HtmlDocumentAdapter( HtmlDocument doc )
{
if ( doc == null )
{
throw new ArgumentNullException( "doc" );
}
Document = doc;
myElementAdapters = new Dictionary<HtmlElement, HtmlElementAdapter>();
}
示例12: WebEngine
public WebEngine(HtmlDocument document, string webRoot)
{
_document = document;
_webRoot = webRoot;
session = engine.CreateSession(document);
session.AddReference("System.Windows.Forms");
RegisterEvents();
CompileScripts();
}
示例13: ScrapePage
public void ScrapePage(HtmlDocument link)
{
CurrentDoc = link;
TableData.Add(CurrentDoc.GetElementById("ctl00_cphBody_repeaterOwnerInformation_ctl00_lblOwnerName").InnerText);
TableData.Add(CurrentDoc.GetElementById("ctl00_cphBody_lblHeaderPropertyAddress").InnerText);
ScrapeHTMLTables("buildingsDetailWrapper", "table", 0);
ScrapeHTMLTables("buildingsDetailWrapper", "table", 1);
ScrapeHTMLTables("buildingsDetailWrapper", "table", 3);
RemoveUnneededListElements();
}
示例14: SetFileUpload
protected void SetFileUpload(HtmlDocument document, string name, string fileName)
{
var fileElement = (HTMLInputElement)document.GetElementById(name).DomElement;
fileElement.focus();
// The first space is to open the file open dialog. The
// remainder of the spaces is to have some messages for
// until the open dialog actually opens.
SendKeys.SendWait(" " + fileName + "{ENTER}");
}
示例15: ExecScript
public static object ExecScript(HtmlDocument doc, string js)
{
object ret = null;
if (String.IsNullOrEmpty(js) == false)
{
mshtml.IHTMLDocument2 d = doc.DomDocument as mshtml.IHTMLDocument2;
mshtml.IHTMLWindow2 win = d.parentWindow as mshtml.IHTMLWindow2;
ret = win.execScript(js, "javascript");
}
return ret;
}