using System;
using System.Linq;
using Aspose.Html;
using Aspose.Html.Collections;
using Aspose.Html.Dom;
using Aspose.Html.Dom.Traversal;
using Aspose.Html.Dom.Traversal.Filters;
namespace Task982
{
class Program
{
private static HTMLDocument _document;
private static string Tabs(int n)
{
return new string(\'\\t\', n);
}
static void Main(string[] args)
{
const string url = @"http://asposedemo20170904120448.azurewebsites.net/home/QuerySelector";
try
{
_document = new HTMLDocument(url);
}
catch (Exception e)
{
Console.WriteLine(e);
return;
}
Demo01();
Demo02();
Demo03();
Demo04();
Demo05();
Demo06();
}
private static void Demo01()
{
var elementById = _document.GetElementById("Listfriends");
var elementBySelector = _document.QuerySelector("#Listfriends");
Console.WriteLine($"Listfriends is {elementById.TagName}");
Console.WriteLine($"Listfriends is {elementBySelector.TagName}");
}
private static void Demo02()
{
var inputs = _document.GetElementsByTagName("input");
Console.WriteLine($"We have a {inputs.Length} inputs");
//var radiosGroup = _document.GetElementsByName("rr");
//Console.WriteLine($"We have {radiosGroup.Length} radio");
var unorderedList = _document.QuerySelectorAll("ul");
Console.WriteLine($"We have a {unorderedList.Length} ULs");
}
private static void Demo03()
{
var links = _document.Links;
Console.WriteLine($"We have a {links.Length} links.");
var forms = _document.Forms;
Console.WriteLine($"We have a {forms.Length} forms.");
}
private static void Demo04()
{
var elementById = _document.GetElementById("Listfriends");
var elementsByClassName = _document.GetElementsByClassName("intro").First();
var elementsByTagName = _document.GetElementsByTagName("h4").First();
Console.WriteLine($"Element found by Id:{elementById.TagName}"); //UL
Console.WriteLine($"First element found by class name:{elementsByClassName.TagName}"); //DIV
Console.WriteLine($"First element found by tag name:{elementsByTagName.TagName}"); //H4
}
private static void Demo05()
{
var element1 = _document.GetElementById("Listfriends");
element1.SetAttribute("class", "newsletter");
var element2 = _document.QuerySelector("#Listfriends");
element2.SetAttribute("class", "newsletter");
var elements3 = _document.GetElementsByTagName("p");
foreach (var element in elements3)
{
element.SetAttribute("class", "newsletter");
}
var elements4 = _document.QuerySelectorAll("p");
foreach (var element in elements4)
{
element.SetAttribute("class", "newsletter");
}
}
private static void Demo06()
{
// Select by matching \'class\' attributes.intro
var element3 = _document.QuerySelector(".intro");
Console.WriteLine(element3.TagName); // DIV
//Select by matching \'id\' attributes Lastname
var element4 = _document.QuerySelector("#Lastname");
Console.WriteLine(element4.TagName); //SPAN
//Select by finding direct children
var collection5 = _document.QuerySelectorAll("ul>li");
Console.WriteLine(collection5.Length); //4
//Descendent Select by finding all decedents div p
var collection6 = _document.QuerySelectorAll("div p");
Console.WriteLine(collection6.Length); //4
//Sibling Selects nearest next sibling h1+p
var collection7 = _document.QuerySelectorAll("ul+h3");
Console.WriteLine(collection7.Length); //1
//Attribute Selects based on an attribute and or its value input[type = \'button\']
var collection8 = _document.QuerySelectorAll("input[type = \'checkbox\']");
foreach (var element in collection8)
{
Console.WriteLine(element.Id); //cc1 cc2 cc3
}
Console.WriteLine(collection8.Length); //3
//Selects based on a CSS selector: psuedo class ul : first-child
var collection9 = _document.QuerySelector("p:first-child");
Console.WriteLine(collection9.TextContent); // My name is Donald Duck
}
}
}