Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Klassen XPathNavigator innehåller två uppsättningar navigeringsmetoder, den första uppsättningen, som finns i avsnittet Noduppsättningsnavigering med hjälp av XPathNavigator , används för att navigera i noduppsättningar i ett XPathDocument eller XmlDocument -objekt. Den andra uppsättningen, som beskrivs i det här avsnittet, används för att navigera i attribut- och namnområdesnoder i ett XPathDocument eller XmlDocument -objekt.
Navigering av attributnod
Attribut är egenskaper som tillhör ett element, inte del av ett element. Den här skillnaden är viktig på grund av metoderna i klassen XPathNavigator som används för att navigera i syskon-, över- och underordnade noder.
Till exempel används inte metoderna MoveToPrevious och MoveToNext för att navigera från ett element till ett attribut eller mellan attribut. Attribut har i stället distinkta navigeringsmetoder.
Följande är attributnavigeringsmetoderna för XPathNavigator klassen.
När den aktuella noden är ett element kan du använda HasAttributes egenskapen för att se om det finns några attribut som är associerade med elementet. När det är känt att ett element har attribut finns det flera metoder för att komma åt attribut. Om du vill hämta ett enda attribut från elementet använder du GetAttribute -metoden. Om du vill flytta XPathNavigator till ett visst attribut använder du MoveToAttribute -metoden. Du kan också iterera över varje attribut för ett element med hjälp MoveToFirstAttribute av metoden följt av flera anrop till MoveToNextAttribute metoden.
Anmärkning
När XPathNavigator-objektet är placerat på ett attribut- eller namnområdesnod returnerar metoderna MoveToChild, MoveToFirst, MoveToFirstChild, MoveToFollowing, MoveToId, MoveToNext och MoveToPrevious alltid false och påverkar inte positionen för XPathNavigator. Undantagen är metoderna MoveTo, MoveToParent och MoveToRoot.
Navigering av noder i namnområde
Varje element har en associerad uppsättning namnområdesnoder, ett för varje distinkt namnområdesprefix som är bundet till en namnområdes-URI i omfånget för elementet (inklusive XML-prefixet som är bundet till http://www.w3.org/XML/1998/namespace namnområdet, som implicit deklareras i varje XML-dokument) och ett för standardnamnområdet om ett finns i omfånget för elementet. Elementet är överordnat för var och en av dessa namnområdesnoder. En namnområdesnod är dock inte underordnad dess överordnade element.
Precis som med attribut MoveToPrevious används metoderna och MoveToNext inte för att navigera från ett element till en namnområdesnod eller mellan namnområdesnoder. I stället har namnområdesnoder distinkta navigeringsmetoder.
Följande är namnområdesnavigeringsmetoderna för XPathNavigator klassen.
Det finns alltid minst en namnområdesnod i omfånget för ett element i ett XML-dokument. Det här är namnområdesnoden med prefixet xml och namnområdes-URI http://www.w3.org/XML/1998/namespace:n . Om du vill hämta en namnområdes-URI i omfånget, med ett visst prefix, använder du metoden GetNamespace. Om du vill flytta objektet XPathNavigator till en viss namnområdesnod använder du MoveToNamespace metoden . Du kan också iterera över varje namnområdesnod som är i omfånget för ett element genom att först använda MoveToFirstNamespace-metoden och sedan göra flera anrop till MoveToNextNamespace-metoden.
Anmärkning
När XPathNavigator-objektet är placerat på ett attribut- eller namnområdesnod returnerar metoderna MoveToChild, MoveToFirst, MoveToFirstChild, MoveToFollowing, MoveToId, MoveToNext och MoveToPrevious alltid false och påverkar inte positionen för XPathNavigator. Undantagen är metoderna MoveTo, MoveToParent och MoveToRoot.
XPathNamespaceScope-uppräkning
När du navigerar i namnområdesnoder kan metoderna MoveToFirstNamespace och MoveToNextNamespace anropas med en XPathNamespaceScope parameter. Dessa metoder fungerar annorlunda än deras motsvarigheter som anropas utan parametrar. Uppräkningen XPathNamespaceScope har värden för All, ExcludeXmleller Local.
I följande exempel visas vilka namnområden som returneras av MoveToFirstNamespace metoderna och MoveToNextNamespace i olika omfång i ett XML-dokument.
<root>
<element1 xmlns="http://www.contoso.com" xmlns:books="http://www.contoso.com/books">
<element2 />
</element1>
</root>
Namnområdessekvensen (namnområdet där XPathNavigator är placerat efter att MoveToFirstNamespace-metoden har anropats, följt av en serie anrop till MoveToNextNamespace-metoden) är som följer.
När du är placerad på
element2:xmlns:books="http://www.contoso.com/books",xmlns="http://www.contoso.com"ochxmlns:xml="http://www.w3.org/XML/1998/namespace".När du är placerad på
element1:xmlns:books="http://www.contoso.com/books",xmlns="http://www.contoso.com"ochxmlns:xml="http://www.w3.org/XML/1998/namespace".När du befinner dig på
root:xmlns:xml="http://www.w3.org/XML/1998/namespace".
Anmärkning
Klassen XPathNavigator returnerar namnområdesnoder i omvänd dokumentordning. Därför flyttas MoveToFirstNamespace i princip till sista noden i namnrymden inom det aktuella omfånget.
I följande exempel visas vilka namnområden som returneras av metoderna MoveToFirstNamespace och MoveToNextNamespace med enumerationen XPathNamespaceScope specificerad på olika nivåer i ett XML-dokument.
<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>
När den är placerad på child2är namnområdessekvensen (namnområdet XPathNavigator som placeras efter att metoden anropats MoveToFirstNamespace följt av en serie anrop till MoveToNextNamespace metoden) följande.
All:
xmlns:c="urn:c",xmlns:a="urn:a",xmlns="",xmlns:b="http://www.contoso.com/b",xmlns:a="http://www.contoso.com/a",xmlns="http://www.contoso.com"ochxmlns:xml="http://www.w3.org/XML/1998/namespace".ExcludeXml:
xmlns:c="urn:c",xmlns:a="urn:a",xmlns="",xmlns:b="http://www.contoso.com/b",xmlns:a="http://www.contoso.com/a"ochxmlns="http://www.contoso.com".Local:
xmlns:c="urn:c".
Anmärkning
Klassen XPathNavigator returnerar namnområdesnoder i omvänd dokumentordning. Därför flyttas MoveToFirstNamespace i princip till sista noden i namnrymden inom det aktuella omfånget.