本文整理汇总了C#中IHtmlElement.Nodes方法的典型用法代码示例。如果您正苦于以下问题:C# IHtmlElement.Nodes方法的具体用法?C# IHtmlElement.Nodes怎么用?C# IHtmlElement.Nodes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IHtmlElement
的用法示例。
在下文中一共展示了IHtmlElement.Nodes方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: HtmlList
public HtmlList( IHtmlElement element )
{
if ( element == null )
throw new ArgumentNullException( "element" );
if ( !HtmlSpecification.listElements.Contains( element.Name.ToLowerInvariant() ) )
throw new ArgumentException( "只能从列表元素创建 HtmlList 对象" );
if ( element.Elements().Any( e => !e.Name.EqualsIgnoreCase( "li" ) ) )
throw new FormatException( "HTML 文档格式不正确,列表元素只能包含 li 元素" );
if ( element.Nodes().OfType<IHtmlTextNode>().Any( n => !n.IsWhiteSpace() ) )
throw new FormatException( "HTML 文档格式不正确,列表元素只能包含 li 元素,不能包含文本。" );
_element = element;
}
示例2: GenerateElementHtml
/// <summary>
/// 尝试生成元素的HTML表现形式
/// </summary>
/// <param name="element">要生成HTML的元素</param>
/// <returns></returns>
private static string GenerateElementHtml( IHtmlElement element )
{
var builder = new StringBuilder();
var specification = element.Document.HtmlSpecification;
if ( specification.IsForbiddenEndTag( element.Name ) )
{
if ( element.Nodes().Any() )
throw new FormatException( string.Format( CultureInfo.InvariantCulture, "HTML元素 {0} 不能有任何内容", element.Name ) );
builder.Append( GenerateTagHtml( element, true ) );
}
else
{
builder.Append( GenerateTagHtml( element, false ) );
element.Nodes().ForAll( node => builder.Append( GenerateHtml( node ) ) );
builder.AppendFormat( "</{0}>", element.Name );
}
return builder.ToString();
}
示例3: RenderElementAndChilds
/// <summary>
/// 渲染元素和其子节点
/// </summary>
/// <param name="element">要渲染的元素</param>
/// <param name="context">渲染上下文</param>
private static void RenderElementAndChilds( IHtmlElement element, IHtmlRenderContext context )
{
var writer = context.Writer;
var specification = element.Document.HtmlSpecification;
if ( specification.IsForbiddenEndTag( element.Name ) )
{
var builder = new StringBuilder();
builder.Append( GenerateTagHtml( element, true ) );
if ( element.Nodes().Any() )
throw new FormatException( string.Format( CultureInfo.InvariantCulture, "HTML元素 {0} 不能有任何内容", element.Name ) );
writer.Write( builder );
}
else
{
writer.Write( GenerateTagHtml( element, false ) );
RenderChilds( element, context );
writer.Write( "</{0}>", element.Name );
}
}
示例4: ArgumentNullException
bool ICssPseudoClassSelector.IsEligible( IHtmlElement element )
{
if ( element == null )
throw new ArgumentNullException( "element" );
switch ( _name )
{
case "only-child":
return element.Siblings().Count() == 1;
case "only-of-type":
return element.Siblings( element.Name ).Count() == 1;
case "empty":
return element.Nodes().Count( n => n is IHtmlElement || n is IHtmlTextNode ) == 0;//只有元素和文本节点视为有内容 http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#empty-pseudo
default:
throw new InvalidOperationException();
}
}