XmlNode.SelectSingleNode Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
XPath ifadesiyle eşleşen ilk XmlNode
öğeyi seçer.
Aşırı Yüklemeler
SelectSingleNode(String) |
XPath ifadesiyle eşleşen ilk |
SelectSingleNode(String, XmlNamespaceManager) |
XPath ifadesiyle eşleşen ilk |
Örnekler
Aşağıdaki örnek, eşleşen yazar adına sahip ilk kitabı döndürür. , XmlNamespaceManager
XPath ifadesindeki varsayılan ad alanını çözümler.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
XmlDocument^ doc = gcnew XmlDocument;
doc->Load( L"newbooks.xml" );
// Create an XmlNamespaceManager to resolve the default namespace.
XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager( doc->NameTable );
nsmgr->AddNamespace( L"bk", L"urn:newbooks-schema" );
// Select the first book written by an author whose last name is Atwood.
XmlNode^ book;
XmlElement^ root = doc->DocumentElement;
book = root->SelectSingleNode( L"descendant::bk:book[bk:author/bk:last-name='Atwood']", nsmgr );
Console::WriteLine( book->OuterXml );
return 0;
}
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
XmlDocument doc = new XmlDocument();
doc.Load("newbooks.xml");
// Create an XmlNamespaceManager to resolve the default namespace.
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("bk", "urn:newbooks-schema");
// Select the first book written by an author whose last name is Atwood.
XmlNode book;
XmlElement root = doc.DocumentElement;
book = root.SelectSingleNode("descendant::bk:book[bk:author/bk:last-name='Atwood']", nsmgr);
Console.WriteLine(book.OuterXml);
}
}
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
Dim doc As XmlDocument = New XmlDocument()
doc.Load("newbooks.xml")
'Create an XmlNamespaceManager for resolving namespaces.
Dim nsmgr As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
nsmgr.AddNamespace("bk", "urn:newbooks-schema")
'Select the book written by an author whose last name is Atwood.
Dim book As XmlNode
Dim root As XmlElement = doc.DocumentElement
book = root.SelectSingleNode("descendant::bk:book[bk:author/bk:last-name='Atwood']", nsmgr)
Console.WriteLine(book.OuterXml)
End Sub
End Class
Örnekte giriş newbooks.xml
olarak dosyası kullanılır.
<?xml version='1.0'?>
<bookstore xmlns="urn:newbooks-schema">
<book genre="novel" style="hardcover">
<title>The Handmaid's Tale</title>
<author>
<first-name>Margaret</first-name>
<last-name>Atwood</last-name>
</author>
<price>19.95</price>
</book>
<book genre="novel" style="other">
<title>The Poisonwood Bible</title>
<author>
<first-name>Barbara</first-name>
<last-name>Kingsolver</last-name>
</author>
<price>11.99</price>
</book>
</bookstore>
Açıklamalar
XPath ifadeleri ad alanları içerebilir. Ad alanı çözümlemesi kullanılarak XmlNamespaceManager
desteklenir. XPath ifadesi bir ön ek içeriyorsa, ön ek ve ad alanı URI çifti XmlNamespaceManager
öğesine eklenmelidir.
Not
XPath ifadesi bir ön ek içermiyorsa, ad alanı URI'sinin boş ad alanı olduğu varsayılır. XML'niz varsayılan bir ad alanı içeriyorsa, öğesine yine de bir ön ek ve ad alanı URI'sini XmlNamespaceManager
eklemeniz gerekir; aksi takdirde hiçbir düğüm seçilmez. Daha fazla bilgi için bkz. XPath Gezintisini Kullanarak Düğüm Seçme.
SelectSingleNode(String)
- Source:
- XmlNode.cs
- Source:
- XmlNode.cs
- Source:
- XmlNode.cs
XPath ifadesiyle eşleşen ilk XmlNode
öğeyi seçer.
public:
System::Xml::XmlNode ^ SelectSingleNode(System::String ^ xpath);
public System.Xml.XmlNode? SelectSingleNode (string xpath);
public System.Xml.XmlNode SelectSingleNode (string xpath);
member this.SelectSingleNode : string -> System.Xml.XmlNode
Public Function SelectSingleNode (xpath As String) As XmlNode
Parametreler
- xpath
- String
XPath ifadesi. Bkz. XPath Örnekleri.
Döndürülenler
XmlNode
XPath sorgusuyla eşleşen ilk sorgu veya null
eşleşen düğüm bulunamaz.
Özel durumlar
XPath ifadesi bir ön ek içerir.
Örnekler
Aşağıdaki örnek, ilk Jane Austen kitabının fiyatını değiştirir.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
XmlDocument^ doc = gcnew XmlDocument;
doc->Load( "booksort.xml" );
XmlNode^ book;
XmlNode^ root = doc->DocumentElement;
book = root->SelectSingleNode( "descendant::book[author/last-name='Austen']" );
//Change the price on the book.
book->LastChild->InnerText = "15.95";
Console::WriteLine( "Display the modified XML document...." );
doc->Save( Console::Out );
}
using System;
using System.IO;
using System.Xml;
public class Sample {
public static void Main() {
XmlDocument doc = new XmlDocument();
doc.Load("booksort.xml");
XmlNode book;
XmlNode root = doc.DocumentElement;
book=root.SelectSingleNode("descendant::book[author/last-name='Austen']");
//Change the price on the book.
book.LastChild.InnerText="15.95";
Console.WriteLine("Display the modified XML document....");
doc.Save(Console.Out);
}
}
Imports System.IO
Imports System.Xml
public class Sample
public shared sub Main()
'Create the XmlDocument.
Dim doc as XmlDocument = new XmlDocument()
doc.Load("booksort.xml")
Dim book as XmlNode
Dim root as XmlNode = doc.DocumentElement
book=root.SelectSingleNode("descendant::book[author/last-name='Austen']")
'Change the price on the book.
book.LastChild.InnerText="15.95"
Console.WriteLine("Display the modified XML document....")
doc.Save(Console.Out)
end sub
end class
Örnekte giriş booksort.xml
olarak dosyası kullanılır.
<?xml version="1.0"?>
<!-- A fragment of a book store inventory database -->
<bookstore xmlns:bk="urn:samples">
<book genre="novel" publicationdate="1997" bk:ISBN="1-861001-57-8">
<title>Pride And Prejudice</title>
<author>
<first-name>Jane</first-name>
<last-name>Austen</last-name>
</author>
<price>24.95</price>
</book>
<book genre="novel" publicationdate="1992" bk:ISBN="1-861002-30-1">
<title>The Handmaid's Tale</title>
<author>
<first-name>Margaret</first-name>
<last-name>Atwood</last-name>
</author>
<price>29.95</price>
</book>
<book genre="novel" publicationdate="1991" bk:ISBN="1-861001-57-6">
<title>Emma</title>
<author>
<first-name>Jane</first-name>
<last-name>Austen</last-name>
</author>
<price>19.95</price>
</book>
<book genre="novel" publicationdate="1982" bk:ISBN="1-861001-45-3">
<title>Sense and Sensibility</title>
<author>
<first-name>Jane</first-name>
<last-name>Austen</last-name>
</author>
<price>19.95</price>
</book>
</bookstore>
Açıklamalar
XPath ifadesi ad alanı çözümlemesi gerektiriyorsa, bağımsız değişkeni olarak bir XmlNamespaceManager alan aşırı yüklemeyi kullanmanız SelectSingleNode
gerekir. XmlNamespaceManager
ad alanlarını çözümlemek için kullanılır.
Not
XPath ifadesi bir ön ek içermiyorsa, ad alanı URI'sinin boş ad alanı olduğu varsayılır. XML'niz varsayılan bir ad alanı içeriyorsa, yine de öğesini kullanmanız XmlNamespaceManager
ve buna bir ön ek ve ad alanı URI'sini eklemeniz gerekir; aksi takdirde seçili bir düğüm alamayabilirsiniz. Daha fazla bilgi için bkz. XPath Gezintisini Kullanarak Düğüm Seçme.
Not
XPath ifadelerini formüle ederken sık karşılaşılan bir sorun, ifadeye tek tırnak (') veya çift tırnak (") eklemektir. Tek tırnak içeren bir değer aramanız gerekiyorsa, dizeyi çift tırnak içine almanız gerekir. Çift tırnak içeren bir değer aramanız gerekiyorsa, dizeyi tek tırnak içine almanız gerekir.
Örneğin, aşağıdaki XML'e sahip olduğunuzu varsayalım:
<bookstore>
<book>
<title>'Emma'</title>
</book>
</bookstore>
Aşağıdaki Visual Basic kodu, tek tırnak işaretleri içeren bir öğeyi seçer:
book = root.SelectSingleNode("descendant::book[title=""'Emma'""]")
Bu yöntem, Belge Nesne Modeli'nin (DOM) Microsoft bir uzantısıdır.
Ayrıca bkz.
Şunlara uygulanır
SelectSingleNode(String, XmlNamespaceManager)
- Source:
- XmlNode.cs
- Source:
- XmlNode.cs
- Source:
- XmlNode.cs
XPath ifadesiyle eşleşen ilk XmlNode
öğeyi seçer. XPath ifadesinde bulunan tüm ön ekler sağlanan XmlNamespaceManagerkullanılarak çözümlenir.
public:
System::Xml::XmlNode ^ SelectSingleNode(System::String ^ xpath, System::Xml::XmlNamespaceManager ^ nsmgr);
public System.Xml.XmlNode? SelectSingleNode (string xpath, System.Xml.XmlNamespaceManager nsmgr);
public System.Xml.XmlNode SelectSingleNode (string xpath, System.Xml.XmlNamespaceManager nsmgr);
member this.SelectSingleNode : string * System.Xml.XmlNamespaceManager -> System.Xml.XmlNode
Public Function SelectSingleNode (xpath As String, nsmgr As XmlNamespaceManager) As XmlNode
Parametreler
- xpath
- String
XPath ifadesi. Bkz. XPath Örnekleri.
- nsmgr
- XmlNamespaceManager
XmlNamespaceManager XPath ifadesindeki ön eklerin ad alanlarını çözümlemek için kullanılacak.
Döndürülenler
XmlNode
XPath sorgusuyla eşleşen ilk sorgu veya null
eşleşen düğüm bulunamaz.
Özel durumlar
XPath ifadesi içinde XmlNamespaceManager
tanımlanmayan bir ön ek içerir.
Örnekler
Aşağıdaki örnek, eşleşen ISBN değerine sahip kitabı seçer.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
XmlDocument^ doc = gcnew XmlDocument;
doc->Load( "booksort.xml" );
//Create an XmlNamespaceManager for resolving namespaces.
XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager( doc->NameTable );
nsmgr->AddNamespace( "bk", "urn:samples" );
//Select the book node with the matching attribute value.
XmlNode^ book;
XmlElement^ root = doc->DocumentElement;
book = root->SelectSingleNode( "descendant::book->Item[@bk:ISBN='1-861001-57-6']", nsmgr );
Console::WriteLine( book->OuterXml );
}
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
XmlDocument doc = new XmlDocument();
doc.Load("booksort.xml");
//Create an XmlNamespaceManager for resolving namespaces.
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("bk", "urn:samples");
//Select the book node with the matching attribute value.
XmlNode book;
XmlElement root = doc.DocumentElement;
book = root.SelectSingleNode("descendant::book[@bk:ISBN='1-861001-57-6']", nsmgr);
Console.WriteLine(book.OuterXml);
}
}
Imports System.IO
Imports System.Xml
public class Sample
public shared sub Main()
Dim doc as XmlDocument = new XmlDocument()
doc.Load("booksort.xml")
'Create an XmlNamespaceManager for resolving namespaces.
Dim nsmgr as XmlNamespaceManager = new XmlNamespaceManager(doc.NameTable)
nsmgr.AddNamespace("bk", "urn:samples")
'Select the book node with the matching attribute value.
Dim book as XmlNode
Dim root as XmlElement = doc.DocumentElement
book = root.SelectSingleNode("descendant::book[@bk:ISBN='1-861001-57-6']", nsmgr)
Console.WriteLine(book.OuterXml)
end sub
end class
Örnekte giriş booksort.xml
olarak dosyası kullanılır.
<?xml version="1.0"?>
<!-- A fragment of a book store inventory database -->
<bookstore xmlns:bk="urn:samples">
<book genre="novel" publicationdate="1997" bk:ISBN="1-861001-57-8">
<title>Pride And Prejudice</title>
<author>
<first-name>Jane</first-name>
<last-name>Austen</last-name>
</author>
<price>24.95</price>
</book>
<book genre="novel" publicationdate="1992" bk:ISBN="1-861002-30-1">
<title>The Handmaid's Tale</title>
<author>
<first-name>Margaret</first-name>
<last-name>Atwood</last-name>
</author>
<price>29.95</price>
</book>
<book genre="novel" publicationdate="1991" bk:ISBN="1-861001-57-6">
<title>Emma</title>
<author>
<first-name>Jane</first-name>
<last-name>Austen</last-name>
</author>
<price>19.95</price>
</book>
<book genre="novel" publicationdate="1982" bk:ISBN="1-861001-45-3">
<title>Sense and Sensibility</title>
<author>
<first-name>Jane</first-name>
<last-name>Austen</last-name>
</author>
<price>19.95</price>
</book>
</bookstore>
Açıklamalar
XPath ifadeleri ad alanları içerebilir. Ad alanı çözümlemesi kullanılarak XmlNamespaceManager
desteklenir. XPath ifadesi bir ön ek içeriyorsa, ön ek ve ad alanı URI çifti XmlNamespaceManager
öğesine eklenmelidir.
Not
XPath ifadesi bir ön ek içermiyorsa, ad alanı URI'sinin boş ad alanı olduğu varsayılır. XML'niz varsayılan bir ad alanı içeriyorsa, öğesine yine de bir ön ek ve ad alanı URI'sini XmlNamespaceManager
eklemeniz gerekir; aksi takdirde bir düğüm seçilmez. Daha fazla bilgi için bkz. XPath Gezintisini Kullanarak Düğüm Seçme.
Örneğin, aşağıdaki XML'niz varsa:
<bookstore xmlns="http://www.lucernepublishing.com">
<book>
<title>Pride And Prejudice</title>
</book>
</bookstore>
Aşağıdaki C# kodu ilk kitap düğümünü seçer:
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("ab", "http://www.lucernepublishing.com");
XmlNode book = doc.SelectSingleNode("//ab:book", nsmgr);
Not
XPath ifadelerini formüle ederken sık karşılaşılan bir sorun, ifadeye tek tırnak (') veya çift tırnak (") eklemektir. Tek tırnak içeren bir değer aramanız gerekiyorsa, dizeyi çift tırnak içine almanız gerekir. Çift tırnak içeren bir değer aramanız gerekiyorsa, dizeyi tek tırnak içine almanız gerekir.
Örneğin, aşağıdaki XML'e sahip olduğunuzu varsayalım:
<bookstore xmlns="http://www.lucernepublishing.com">
<book>
<title>'Emma'</title>
</book>
</bookstore>
Aşağıdaki Visual Basic kodu, tek tırnak işaretleri içeren bir öğeyi seçer:
Dim nsmgr As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
nsmgr.AddNamespace("ab", "http://www.lucernepublishing.com")
book = root.SelectSingleNode("descendant::ab:book[ab:title=""'Emma'""]", nsmgr)
Bu yöntem, Belge Nesne Modeli'nin (DOM) Microsoft bir uzantısıdır.
Ayrıca bkz.
Şunlara uygulanır
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin