本文整理汇总了C#中HtmlDocument类的典型用法代码示例。如果您正苦于以下问题:C# HtmlDocument类的具体用法?C# HtmlDocument怎么用?C# HtmlDocument使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
HtmlDocument类属于命名空间,在下文中一共展示了HtmlDocument类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateElement
public void CreateElement()
{
var doc = new HtmlDocument();
var a = doc.CreateElement("a");
Assert.AreEqual("a", a.Name);
Assert.AreEqual(a.NodeType, HtmlNodeType.Element);
}
示例2: CreateTextNodeWithText
public void CreateTextNodeWithText()
{
var doc = new HtmlDocument();
var a = doc.CreateTextNode("something");
Assert.AreEqual("something", a.InnerText);
Assert.AreEqual(a.NodeType, HtmlNodeType.Text);
}
示例3: Head_SetNonExisting_Null_RemovesElement
public void Head_SetNonExisting_Null_RemovesElement()
{
HtmlDocument document = new HtmlDocument() { Head = null };
document.Head = null;
Assert.True(document.IsEmpty);
Assert.Null(document.Head);
}
示例4: ExtractCss
private static string ExtractCss(HtmlDocument doc)
{
var styleTags = doc.FindTagsByName("style", "link").ToArray();
var css = new StringBuilder();
foreach (var tag in styleTags)
{
if (tag.IsType("style"))
css.AppendLine(tag.ChildElements.ToSeparatedString(" "));
else if (tag.IsType("link") && (string.Compare(tag.Attributes["type"], "text/css", true) == 0 || string.Compare(tag.Attributes["rel"], "stylesheet") == 0))
{
var src = tag.Attributes["href"];
if (string.IsNullOrEmpty(src))
continue;
var uri = new Uri(src, UriKind.RelativeOrAbsolute);
if (!uri.IsAbsoluteUri && HttpContext.Current != null && HttpContext.Current.Request != null)
{
uri = new Uri(HttpContext.Current.Request.Url, uri);
}
if (!uri.IsAbsoluteUri)
continue;
var client = new WebClient();
css.Append(client.DownloadString(uri));
}
}
foreach (var tag in styleTags)
{
tag.Remove();
}
return css.ToString();
}
示例5: GetLinksFromWebsite
public static List<string> GetLinksFromWebsite(string htmlSource)
{
var doc = new HtmlDocument();
try
{
doc.LoadHtml(htmlSource);
if (doc.DocumentNode.InnerHtml == null) return null;
if (doc.DocumentNode.SelectNodes("//a[@ref]") == null)
{
return doc
.DocumentNode
.SelectNodes("//a[@href]")
.Select(node => node.Attributes["href"].Value)
.ToList();
}
return doc
.DocumentNode
.SelectNodes("//a[@ref]")
.Select(node => node.Attributes["ref"].Value)
.ToList();
}
catch (Exception)
{
}
return null;
}
示例6: CreateTextNode
public void CreateTextNode()
{
var doc = new HtmlDocument();
var a = doc.CreateTextNode();
Assert.AreEqual(HtmlNode.HtmlNodeTypeNameText, a.Name);
Assert.AreEqual(a.NodeType, HtmlNodeType.Text);
}
示例7: Mouse_click_will_fail_because_hidden_link_is_matched_instead_of_visible_link
public void Mouse_click_will_fail_because_hidden_link_is_matched_instead_of_visible_link()
{
// Playback.PlaybackSettings.SmartMatchOptions = SmartMatchOptions.None; // tried Sudhish Mathuria's suggestion
var example2Path = Path.Combine(TestContext.TestDeploymentDir, "example2.htm");
var window = BrowserWindow.Launch(example2Path);
var document = new HtmlDocument(window);
document.FilterProperties[HtmlDocument.PropertyNames.Title] = "2ad6de55-75f1-403f-8fcb-1d5defac9786";
var visibleLink = new HtmlHyperlink(document);
visibleLink.SearchProperties[HtmlHyperlink.PropertyNames.InnerText] = "Hello";
// ONLY FIND VISIBLE CONTROLS !
visibleLink.SearchConfigurations.Add(SearchConfiguration.VisibleOnly);
var allMatches = visibleLink.FindMatchingControls();
Assert.AreEqual(2, allMatches.Count, "Should be two matching.");
visibleLink.Find(); // THIS SHOULD BE THE VISIBLE ONE
Debug.WriteLine("BoundingRectangle: " + visibleLink.BoundingRectangle);
Assert.IsTrue(visibleLink.BoundingRectangle.Width > 0, "Width should positive.");
Assert.IsTrue(visibleLink.BoundingRectangle.Height > 0, "Height should positive.");
Mouse.Click(visibleLink);
}
示例8: CreateAttributeWithText
public void CreateAttributeWithText()
{
var doc = new HtmlDocument();
var a = doc.CreateAttribute("href", "http://something.com");
Assert.AreEqual("href", a.Name);
Assert.AreEqual("http://something.com", a.Value);
}
示例9: Head_ReturnsHeadObject
public void Head_ReturnsHeadObject()
{
var doc = new HtmlDocument();
var head = doc.Head;
Assert.IsInstanceOf<Head>(head);
}
示例10: Main
static void Main(string[] args)
{
HtmlDocument doc = new HtmlDocument();
doc.Load(@"..\..\mshome.htm");
doc.OptionOutputAsXml = true;
doc.Save("mshome.xml");
}
示例11: Main
static void Main (string [] args)
{
HtmlDocument doc = new HtmlDocument();
doc.Load(args [0]);
doc.OptionOutputAsXml = true;
doc.Save(args [1]);
}
示例12: TestCallingExistingFunction
public void TestCallingExistingFunction()
{
var doc = new HtmlDocument();
doc.LoadHtml("<html><body class=\"asdfasd\"><p>asdf asdf sdf</p></body></html>");
dynamic docElement = doc.DocumentNode;
var item = docElement.Descendants();
Assert.IsInstanceOf<IEnumerable<HtmlNode>>(item);
}
示例13: Body_ReturnsBodyObject
public void Body_ReturnsBodyObject()
{
var doc = new HtmlDocument();
Body body = doc.Body;
Assert.IsInstanceOf<Body>(body);
}
示例14: Head_SetExisting_NonNull_RemovesElement
public void Head_SetExisting_NonNull_RemovesElement()
{
HtmlElement value = Tag.Head.WithClass("class");
HtmlDocument document = new HtmlDocument() { Head = Tag.Head };
document.Head = value;
Assert.Equal(new HtmlElement[] { value }, document.Elements());
Assert.Equal(value, document.Head);
}
示例15: Test_HasAttribute
public void Test_HasAttribute()
{
var doc = new HtmlDocument("<html><head></head><body><a href=\"http://flo.se\">yo</a></body></html>");
var link = doc.DocumentNode.SelectSingleNode("//a");
Assert.IsTrue(link.HasAttribute("href"));
}