Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch
Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

XmlNode.SelectSingleNode-Methode (String, XmlNamespaceManager)

Wählt den ersten XmlNode aus, der mit dem XPath-Ausdruck übereinstimmt. Sämtliche im XPath-Ausdruck vorhandenen Präfixe werden mit dem angegebenen XmlNamespaceManager aufgelöst.

Namespace:  System.Xml
Assembly:  System.Xml (in System.Xml.dll)

public XmlNode SelectSingleNode(
	string xpath,
	XmlNamespaceManager nsmgr
)

Parameter

xpath
Typ: System.String
Der XPath-Ausdruck.
nsmgr
Typ: System.Xml.XmlNamespaceManager
Ein XmlNamespaceManager zum Auflösen von Namespaces für Präfixe im XPath-Ausdruck.

Rückgabewert

Typ: System.Xml.XmlNode
Der erste XmlNode, der mit der XPath-Abfrage übereinstimmt, oder null, wenn kein übereinstimmender Knoten gefunden wurde. Das Herstellen einer "Liveverbindung" von XmlNode mit dem XML-Dokument sollte nicht erwartet werden. Das heißt, Änderungen, die im XML-Dokument sichtbar sind, werden nicht in der XmlNode angezeigt (und umgekehrt).

AusnahmeBedingung
XPathException

Der XPath-Ausdruck enthält ein Präfix, das im XmlNamespaceManager nicht definiert ist.

XPath-Ausdrücke können Namespaces enthalten. Der XmlNamespaceManager unterstützt die Auflösung von Namespaces. Wenn der XPath-Ausdruck ein Präfix enthält, muss dem XmlNamespaceManager das Paar aus Präfix und Namespace-URI hinzugefügt werden.

HinweisHinweis

Wenn der XPath-Ausdruck keinen Präfix enthält, wird davon ausgegangen, dass der Namespace-URI der leere Namespace ist. Wenn der XML-Code einen Standardnamespace enthält, müssen Sie dem XmlNamespaceManager dennoch ein Präfix und einen Namespace-URI hinzufügen. Andernfalls wird kein Knoten ausgewählt. Weitere Informationen finden Sie unter Auswählen von Knoten mithilfe der XPath-Navigation.

Angenommen, es liegt folgender XML-Code vor:

 <bookstore xmlns="http://www.lucernepublishing.com">
  <book>
    <title>Pride And Prejudice</title>
  </book>
 </bookstore>

Der folgende C#-Code wählt den ersten Buchknoten aus:

 XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
 nsmgr.AddNamespace("ab", "http://www.lucernepublishing.com");
 XmlNode book = doc.SelectSingleNode("//ab:book", nsmgr);
HinweisHinweis

Ein häufiges Problem bei der Formulierung von XPath-Ausdrücken besteht im Einfügen von einfachen (') oder doppelten Anführungszeichen (") im Ausdruck. Wenn Sie einen Wert suchen müssen, der ein einfaches Anführungszeichen enthält, müssen Sie die Zeichenfolge in doppelten Anführungszeichen einschließen. Wenn Sie einen Wert suchen müssen, der ein doppeltes Anführungszeichen enthält, müssen Sie die Zeichenfolge in einfachen Anführungszeichen einschließen.

Angenommen, bei dem folgenden XML-Code

 <bookstore xmlns="http://www.lucernepublishing.com">
   <book>
     <title>&apos;Emma&apos;</title>
   </book>
 </bookstore>

Im folgenden Visual Basic-Code wird ein Element ausgewählt, das einfache Anführungszeichen enthält:

 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)

Diese Methode ist eine Microsoft-Erweiterung des Dokument Objekt Models (DOM).

Im folgenden Beispiel wird das Buch mit dem übereinstimmenden ISBN-Wert ausgewählt.


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);

  }
}


Im Beispiel wird die Datei booksort.xml als Eingabe verwendet.



<?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>


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Anzeigen: