SelectNodes

CompositeNode.SelectNodes method

XPath ifadesiyle eşleşen düğümlerin bir listesini seçer.

public NodeList SelectNodes(string xpath)
ParametreTipTanım
xpathStringXPath ifadesi.

Geri dönüş değeri

XPath sorgusuyla eşleşen düğümlerin listesi.

Notlar

Şu anda yalnızca öğe adlarına sahip ifadeler destekleniyor. Öznitelik adlarını kullanan Expressions desteklenmiyor.

Örnekler

Bir düğümün bir alanın içinde olup olmadığını test etmek için bir XPath ifadesinin nasıl kullanılacağını gösterir.

Document doc = new Document(MyDir + "Mail merge destination - Northwind employees.docx");

// Bu XPath ifadesinden elde edilen NodeList, bir alan içerisinde bulduğumuz tüm düğümleri içerecektir.
// Ancak, yolda iç içe geçmiş alanlar varsa, FieldStart ve FieldEnd düğümleri listede olabilir.
// Şu anda FieldCode veya FieldResult'un birden fazla paragrafı kapsadığı nadir alanlar bulunmuyor.
NodeList resultList =
    doc.SelectNodes("//FieldStart/takip eden-kardeş::node()[takip eden-kardeş::FieldEnd]");

// Belirtilen çalışmanın alanın içindeki düğümlerden biri olup olmadığını kontrol et.
Console.WriteLine($"Contents of the first Run node that's part of a field: {resultList.First(n => n.NodeType == NodeType.Run).GetText().Trim()}");

XPath ifadesi kullanılarak belirli düğümlerin nasıl seçileceğini gösterir.

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

// Bu ifade tüm paragraf düğümlerini çıkaracaktır,
// belgedeki herhangi bir tablo düğümünün alt öğeleridir.
NodeList nodeList = doc.SelectNodes("//Tablo//Paragraf");

// Bir numaralandırıcı ile listede dolaş ve tablonun her hücresindeki her paragrafın içeriğini yazdır.
int index = 0;

using (IEnumerator<Node> e = nodeList.GetEnumerator())
    while (e.MoveNext())
        Console.WriteLine($"Table paragraph index {index++}, contents: \"{e.Current.GetText().Trim()}\"");

// Bu ifade, belgedeki herhangi bir Body düğümünün doğrudan alt öğesi olan tüm paragrafları seçecektir.
nodeList = doc.SelectNodes("//Gövde/Paragraf");

// Listeyi bir dizi olarak ele alabiliriz.
Assert.AreEqual(4, nodeList.ToArray().Length);

// Yukarıdaki ifadenin ilk sonucunu seçmek için SelectSingleNode'u kullanın.
Node node = doc.SelectSingleNode("//Gövde/Paragraf");

Assert.AreEqual(typeof(Paragraph), node.GetType());

Ayrıca bakınız