|
using System;
using System.Text;
namespace AngleSharp.DOM
{
/// <summary>
/// Represents a text node.
/// </summary>
[DOM("Text")]
public sealed class TextNode : CharacterData
{
#region ctor
/// <summary>
/// Creates a new empty text node.
/// </summary>
internal TextNode()
{
_type = NodeType.Text;
_name = "#text";
}
/// <summary>
/// Creates a new text node with the given text.
/// </summary>
/// <param name="text">The text to set.</param>
internal TextNode(string text)
: this()
{
AppendData(text);
}
/// <summary>
/// Creates a new text node with the given character.
/// </summary>
/// <param name="c">The character to set.</param>
internal TextNode(char c)
: this()
{
AppendData(c);
}
#endregion
#region Properties
/// <summary>
/// Gets if the TextNode is "empty".
/// </summary>
internal Boolean IsEmpty
{
get
{
for (int i = 0; i < Length; i++)
{
if (!Specification.IsSpaceCharacter(this[i]))
return false;
}
return true;
}
}
#endregion
#region Methods
/// <summary>
/// Returns a duplicate of the node on which this method was called.
/// </summary>
/// <param name="deep">Optional value: true if the children of the node should also be cloned, or false to clone only the specified node.</param>
/// <returns>The duplicate node.</returns>
[DOM("cloneNode")]
public override Node CloneNode(Boolean deep = true)
{
var node = new TextNode(Data);
CopyProperties(this, node, deep);
return node;
}
#endregion
#region String representation
/// <summary>
/// Returns a string containing the text in quotation mark.
/// </summary>
/// <returns>A string containing the text content.</returns>
public override String ToString()
{
return '"' + Data + '"';
}
/// <summary>
/// Returns an HTML-code representation of the node.
/// </summary>
/// <returns>A string containing the HTML code.</returns>
public override String ToHtml()
{
return Data;
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Florian lives in Munich, Germany. He started his programming career with Perl. After programming C/C++ for some years he discovered his favorite programming language C#. He did work at Siemens as a programmer until he decided to study Physics.
During his studies he worked as an IT consultant for various companies. After graduating with a PhD in theoretical particle Physics he is working as a senior technical consultant in the field of home automation and IoT.
Florian has been giving lectures in C#, HTML5 with CSS3 and JavaScript, software design, and other topics. He is regularly giving talks at user groups, conferences, and companies. He is actively contributing to open-source projects. Florian is the maintainer of AngleSharp, a completely managed browser engine.