Delen via


Kenmerk- en naamruimteknooppuntnavigatie met behulp van XPathNavigator

De XPathNavigator klasse biedt twee sets navigatiemethoden, de eerste set, die wordt gevonden in het onderwerp Knooppuntsetnavigatie met behulp van XPathNavigator, worden gebruikt om door knooppuntsets in een XPathDocument of XmlDocument object te navigeren. De tweede set, die in dit onderwerp wordt beschreven, wordt gebruikt om door kenmerk- en naamruimteknooppunten in een XPathDocument of XmlDocument object te navigeren.

Navigatie van kenmerkknooppunten

Kenmerken zijn eigenschappen van een element, niet onderliggende elementen van een element. Dit onderscheid is belangrijk, vanwege de methoden van de XPathNavigator klasse die wordt gebruikt om door knooppunten op hetzelfde niveau, bovenliggende en onderliggende knooppunten te navigeren.

De en MoveToNext methoden worden bijvoorbeeld MoveToPrevious niet gebruikt om van een element naar een kenmerk of tussen kenmerken te navigeren. In plaats daarvan hebben kenmerken verschillende navigatiemethoden.

Hier volgen de kenmerknavigatiemethoden van de XPathNavigator klasse.

Wanneer het huidige knooppunt een element is, kunt u de HasAttributes eigenschap gebruiken om te zien of er kenmerken zijn gekoppeld aan het element. Nadat het bekend is dat een element kenmerken heeft, zijn er meerdere methoden voor het openen van kenmerken. Als u één kenmerk uit het element wilt ophalen, gebruikt u de GetAttribute methode. Gebruik de methode om de XPathNavigatorMoveToAttribute naar een bepaald kenmerk te verplaatsen. U kunt ook elk kenmerk van een element herhalen met behulp van de MoveToFirstAttribute methode, gevolgd door meerdere aanroepen naar de MoveToNextAttribute methode.

Notitie

Wanneer het XPathNavigator object is geplaatst op een kenmerk- of naamruimteknooppunt, worden de MoveToChildmethoden , MoveToFirst, MoveToFirstChild, MoveToFollowingen MoveToPreviousMoveToIdMoveToNext methoden altijd geretourneerd falseen hebben ze geen effect op de positie van de XPathNavigator. De uitzonderingen zijn de MoveTo, MoveToParenten MoveToRoot methoden.

Navigatie van naamruimteknooppunt

Elk element heeft een gekoppelde set naamruimteknooppunten, één voor elk afzonderlijk naamruimtevoorvoegsel dat is gebonden aan een naamruimte-URI binnen het bereik van het element (inclusief het XML-voorvoegsel dat is gebonden aan de http://www.w3.org/XML/1998/namespace naamruimte, die impliciet wordt gedeclareerd in elk XML-document) en één voor de standaardnaamruimte als één binnen het bereik van het element valt. Het element is het bovenliggende element van elk van deze naamruimteknooppunten; Een naamruimteknooppunt is echter geen onderliggend element van het bovenliggende element.

Net als bij kenmerken worden de MoveToPrevious en MoveToNext methoden niet gebruikt om van een element naar een naamruimteknooppunt of tussen naamruimteknooppunten te navigeren. In plaats daarvan hebben naamruimteknooppunten verschillende navigatiemethoden.

Hier volgen de navigatiemethoden voor naamruimten van de XPathNavigator klasse.

Er is altijd ten minste één naamruimteknooppunt binnen het bereik voor elk element in een XML-document. Dit is het naamruimteknooppunt met het voorvoegsel xml en de naamruimte-URI http://www.w3.org/XML/1998/namespace. Als u een naamruimte-URI in het bereik wilt ophalen op basis van een bepaald voorvoegsel, gebruikt u de GetNamespace methode. Gebruik de MoveToNamespace methode om het XPathNavigator object naar een bepaald naamruimteknooppunt te verplaatsen. U kunt ook elke naamruimteknooppunt in het bereik van een element herhalen met behulp van de MoveToFirstNamespace methode gevolgd door meerdere aanroepen naar de MoveToNextNamespace methode.

Notitie

Wanneer het XPathNavigator object is geplaatst op een kenmerk- of naamruimteknooppunt, worden de MoveToChildmethoden , MoveToFirst, MoveToFirstChild, MoveToFollowingen MoveToPreviousMoveToIdMoveToNext methoden altijd geretourneerd falseen hebben ze geen effect op de positie van de XPathNavigator. De uitzonderingen zijn de MoveTo, MoveToParenten MoveToRoot methoden.

De opsomming XPathNamespaceScope

Wanneer u door naamruimteknooppunten navigeert, kunnen de MoveToFirstNamespace en MoveToNextNamespace methoden worden aangeroepen met een XPathNamespaceScope parameter. Deze methoden gedragen zich anders dan hun tegenhangers die zonder parameters worden aangeroepen. De XPathNamespaceScope opsomming heeft waarden van All, ExcludeXmlof Local.

In de volgende voorbeelden ziet u welke naamruimten worden geretourneerd door de MoveToFirstNamespace en MoveToNextNamespace methoden in verschillende bereiken in een XML-document.

<root>  
    <element1 xmlns="http://www.contoso.com" xmlns:books="http://www.contoso.com/books">  
        <element2 />  
    </element1>  
</root>  

De naamruimtereeks (de naamruimte waarop de XPathNavigator positie zich bevindt na het aanroepen van de MoveToFirstNamespace methode gevolgd door een reeks aanroepen naar de MoveToNextNamespace methode) is als volgt.

  • Wanneer deze op element2: xmlns:books="http://www.contoso.com/books", xmlns="http://www.contoso.com"en xmlns:xml="http://www.w3.org/XML/1998/namespace".

  • Wanneer deze op element1: xmlns:books="http://www.contoso.com/books", xmlns="http://www.contoso.com"en xmlns:xml="http://www.w3.org/XML/1998/namespace".

  • Wanneer deze wordt weergegeven op root: xmlns:xml="http://www.w3.org/XML/1998/namespace".

Notitie

De XPathNavigator klasse retourneert naamruimteknooppunten in omgekeerde documentvolgorde. MoveToFirstNamespace Daarom gaat u in wezen naar het achternaamruimteknooppunt in het huidige bereik.

In de volgende voorbeelden ziet u welke naamruimten worden geretourneerd door de MoveToFirstNamespace en MoveToNextNamespace methoden met de XPathNamespaceScope opsomming die is opgegeven bij verschillende bereiken in een XML-document.

<root xmlns="http://www.contoso.com" xmlns:a="http://www.contoso.com/a" xmlns:b="http://www.contoso.com/b">  
    <child1 xmlns="" xmlns:a="urn:a">  
        <child2 xmlns:c="urn:c" />  
    </child1>  
</root>  

Wanneer de positie is ingeschakeld child2, is de naamruimtereeks (de naamruimte waarop de XPathNavigator positie zich bevindt na het aanroepen van de MoveToFirstNamespace methode, gevolgd door een reeks aanroepen naar de MoveToNextNamespace methode) als volgt.

  • All: xmlns:c="urn:c", xmlns:a="urn:a", xmlns="", , xmlns:b="http://www.contoso.com/b", , , en xmlns="http://www.contoso.com"xmlns:xml="http://www.w3.org/XML/1998/namespace". xmlns:a="http://www.contoso.com/a"

  • ExcludeXml: xmlns:c="urn:c", xmlns:a="urn:a", xmlns="", , xmlns:b="http://www.contoso.com/b"en xmlns:a="http://www.contoso.com/a"xmlns="http://www.contoso.com".

  • Local: . xmlns:c="urn:c"

Notitie

De XPathNavigator klasse retourneert naamruimteknooppunten in omgekeerde documentvolgorde. MoveToFirstNamespace Daarom gaat u in wezen naar het achternaamruimteknooppunt in het huidige bereik.

Zie ook