Node

Node class

Classe de base pour tous les nœuds d’un document Word.

Pour en savoir plus, visitez leModèle objet de document (DOM) Aspose.Words article documentaire.

public abstract class Node

Propriétés

NomLa description
CustomNodeId { get; set; }Spécifie l’identifiant de nœud personnalisé.
virtual Document { get; }Obtient le document auquel appartient ce nœud.
virtual IsComposite { get; }Retoursvrai si ce nœud peut contenir d’autres nœuds.
NextSibling { get; }Obtient le nœud suivant immédiatement ce nœud.
abstract NodeType { get; }Obtient le type de ce nœud.
ParentNode { get; }Obtient le parent immédiat de ce nœud.
PreviousSibling { get; }Obtient le nœud précédant immédiatement ce nœud.
Range { get; }Renvoie unRange objet qui représente la partie d’un document contenue dans ce nœud.

Méthodes

NomLa description
abstract Accept(DocumentVisitor)Accepte un visiteur.
Clone(bool)Crée un duplicata du nœud.
GetAncestor(NodeType)Obtient le premier ancêtre du spécifiéNodeType .
GetAncestor(Type)Obtient le premier ancêtre du type d’objet spécifié.
virtual GetText()Récupère le texte de ce nœud et de tous ses enfants.
NextPreOrder(Node)Obtient le nœud suivant selon l’algorithme de traversée de l’arbre de pré-commande.
PreviousPreOrder(Node)Obtient le nœud précédent selon l’algorithme de traversée d’arbre de pré-commande.
Remove()Se supprime du parent.
ToString(SaveFormat)Exporte le contenu du nœud dans une chaîne au format spécifié.
ToString(SaveOptions)Exporte le contenu du nœud dans une chaîne à l’aide des options de sauvegarde spécifiées.
static NodeTypeToString(NodeType)Une méthode utilitaire qui convertit une valeur d’énumération de type de nœud en une chaîne conviviale.

Remarques

Un document est représenté sous la forme d’une arborescence de nœuds, similaire au DOM ou à XmlDocument.

Pour plus d’informations, consultez le modèle de conception Composite.

LeNode classe:

  • Définit l’interface du nœud enfant.
  • Définit l’interface pour visiter les nœuds.
  • Fournit une capacité de clonage par défaut.
  • Implémente les mécanismes de nœud parent et de document propriétaire.
  • Implémente l’accès aux nœuds frères.

Exemples

Montre comment supprimer tous les nœuds enfants d’un type spécifique d’un nœud composite.

Document doc = new Document(MyDir + "Tables.docx");

Assert.AreEqual(2, doc.GetChildNodes(NodeType.Table, true).Count);

Node curNode = doc.FirstSection.Body.FirstChild;

while (curNode != null)
{
    // Enregistrez le nœud frère suivant en tant que variable au cas où nous souhaiterions y accéder après avoir supprimé ce nœud.
    Node nextNode = curNode.NextSibling;

    // Un corps de section peut contenir des nœuds Paragraphe et Tableau.
    // Si le nœud est une table, supprimez-le du parent.
    if (curNode.NodeType == NodeType.Table)
        curNode.Remove();

    curNode = nextNode;
}

Assert.AreEqual(0, doc.GetChildNodes(NodeType.Table, true).Count);

Montre comment cloner un nœud composite.

Document doc = new Document();
Paragraph para = doc.FirstSection.Body.FirstParagraph;
para.AppendChild(new Run(doc, "Hello world!"));

// Vous trouverez ci-dessous deux façons de cloner un nœud composite.
// 1 - Créez un clone d'un nœud et créez également un clone de chacun de ses nœuds enfants.
Node cloneWithChildren = para.Clone(true);

Assert.IsTrue(((CompositeNode)cloneWithChildren).HasChildNodes);
Assert.AreEqual("Hello world!", cloneWithChildren.GetText().Trim());

// 2 - Créez un clone d'un nœud seul, sans aucun enfant.
Node cloneWithoutChildren = para.Clone(false);

Assert.IsFalse(((CompositeNode)cloneWithoutChildren).HasChildNodes);
Assert.AreEqual(string.Empty, cloneWithoutChildren.GetText().Trim());

Montre comment parcourir la collection de nœuds enfants d’un nœud composite.

Document doc = new Document();

// Ajoutez deux tracés et une forme en tant que nœuds enfants au premier paragraphe de ce document.
Paragraph paragraph = (Paragraph)doc.GetChild(NodeType.Paragraph, 0, true);
paragraph.AppendChild(new Run(doc, "Hello world! "));

Shape shape = new Shape(doc, ShapeType.Rectangle);
shape.Width = 200;
shape.Height = 200;
// Notez que le 'CustomNodeId' n'est pas enregistré dans un fichier de sortie et n'existe que pendant la durée de vie du nœud.
shape.CustomNodeId = 100;
shape.WrapType = WrapType.Inline;
paragraph.AppendChild(shape);

paragraph.AppendChild(new Run(doc, "Hello again!"));

// Parcourir la collection d'enfants immédiats du paragraphe,
// et imprimons toutes les courses ou formes que nous trouvons à l'intérieur.
NodeCollection children = paragraph.GetChildNodes(NodeType.Any, false);

Assert.AreEqual(3, paragraph.GetChildNodes(NodeType.Any, false).Count);

foreach (Node child in children)
    switch (child.NodeType)
    {
        case NodeType.Run:
            Console.WriteLine("Run contents:");
            Console.WriteLine($"\t\"{child.GetText().Trim()}\"");
            break;
        case NodeType.Shape:
            Shape childShape = (Shape)child;
            Console.WriteLine("Shape:");
            Console.WriteLine($"\t{childShape.ShapeType}, {childShape.Width}x{childShape.Height}");
            break;
    }

Voir également