XNode.PreviousNode Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém o nó irmão anterior desse nó.
public:
property System::Xml::Linq::XNode ^ PreviousNode { System::Xml::Linq::XNode ^ get(); };
public System.Xml.Linq.XNode PreviousNode { get; }
public System.Xml.Linq.XNode? PreviousNode { get; }
member this.PreviousNode : System.Xml.Linq.XNode
Public ReadOnly Property PreviousNode As XNode
Valor da propriedade
O XNode que contém o nó irmão anterior.
Exemplos
O exemplo a seguir usa essa propriedade para fazer loop por meio de nós.
XElement xmlTree = new XElement("Root",
new XElement("Child1", 1),
new XText("Some Text"),
new XElement("Child2",
2,
new XElement("GrandChild", "GrandChild Content")
),
new XComment("a comment"),
new XElement("Child3")
);
XNode node = xmlTree.Element("Child2");
do {
StringBuilder sb = new StringBuilder();
sb.Append(String.Format("NodeType: {0}", node.NodeType.ToString().PadRight(10)));
switch (node.NodeType)
{
case XmlNodeType.Text:
sb.Append((node as XText).Value);
break;
case XmlNodeType.Element:
sb.Append((node as XElement).Name);
break;
case XmlNodeType.Comment:
sb.Append((node as XComment).Value);
break;
}
Console.WriteLine(sb.ToString());
}
while ((node = node.PreviousNode) != null);
Dim xmlTree As XElement = _
<Root>
<Child1>1</Child1>Some Text<Child2>2
<GrandChild>GrandChild Content</GrandChild>
</Child2>
<!--a comment-->
<Child3>3</Child3>
</Root>
Dim node As XNode = xmlTree.Element("Child2")
Do
Dim sb As StringBuilder = New StringBuilder()
sb.Append(String.Format("NodeType: {0}", node.NodeType.ToString().PadRight(10)))
Select Case node.NodeType
Case XmlNodeType.Text
sb.Append(DirectCast(node, XText).Value)
Case XmlNodeType.Element
sb.Append(DirectCast(node, XElement).Name)
Case XmlNodeType.Comment
sb.Append(DirectCast(node, XComment).Value)
End Select
Console.WriteLine(sb.ToString())
node = node.PreviousNode
Loop While (Not (node Is Nothing))
Esse exemplo gera a saída a seguir:
NodeType: Element Child2
NodeType: Text Some Text
NodeType: Element Child1
Comentários
Se isso XNode não tiver um pai ou se não houver nenhum nó anterior, essa propriedade retornará null
.
O XContainer armazenamento de seus nós filho como uma lista de XNode objetos vinculados. Isso significa que a PreviousNode propriedade deve percorrer a lista de nós filho diretos no contêiner pai. Portanto, usar essa propriedade pode afetar seu desempenho.