Esplorazione degli attributi e degli spazi dei nomi con XPathNavigator

Non è possibile esplorare i nodi degli attributi e dello spazio dei nomi con i metodi Move che vengono utilizzati per esplorare la struttura di un gruppo di nodi. Esistono invece metodi specifici per l'esplorazione esclusiva di attributi e spazi dei nomi. Per l'esplorazione degli attributi, utilizzare uno dei metodi sotto elencati:

  • MoveToAttribute
  • MoveToFirstAttribute
  • MoveToNextAttribute

Per l'esplorazione degli spazi dei nomi, utilizzare uno dei metodi sotto elencati:

  • MoveToNamespace
  • MoveToFirstNamespace
  • MoveToNextNamespace

Sono inoltre disponibili metodi, GetAttribute e GetNamespace, che restituiscono il valore degli attributi e degli spazi dei nomi.

Sono disponibili due metodi per l'esplorazione dei gruppi di nodi che funzionano su tutti i tipi di nodo, compresi attributi e spazi dei nomi, ossia:

  • MoveToRoot
  • MoveTo

Se un qualsiasi metodo Move elencato in Esplorazione del set di nodi con XPathNavigator viene richiamato in uno strumento di selezione di gruppi di nodi e tale strumento è posizionato su un nodo di attributo o dello spazio dei nomi, il metodo restituisce False e la posizione dello strumento di selezione non viene modificata in alcun modo.

Durante l'esplorazione tra gli spazi dei nomi, è possibile richiamare i metodi MoveToFirstNamespace e MoveToNextNamespace anche con un parametro XPathNamespaceScope. Il comportamento di questi metodi varia a seconda che vengano richiamati con il parametro XPathNamespaceScope o senza alcun parametro. Il parametro XPathNamespaceScope possiede i valori All, ExcludeXml o Local.

Per consentire l'utilizzo di un sottogruppo di spazi dei nomi allo scopo di migliorare le prestazioni, i metodi dello spazio dei nomi MoveToFirstNamespace e MoveToNextNamespace accettano un parametro XPathNamespaceSet. Questo confina i metodi Move agli spazi dei nomi specificati dal parametro XPathNamespaceSet.

Input

<root xmlns="defaultns" xmlns:a="A" xmlns:b="B">
    <element1  xmlns:a="Z">
        <element2 xmlns:c="C"/>
    </element1>
</root>

L'utilizzo di XPathNamespaceSet come parametro del metodo MoveToFirstNamespace dà luogo alla restituzione di risultati diversi. Prima di poter richiamare il metodo, è necessario posizionarsi sul nodo di un elemento.

  • MoveToFirstNamespace(XPathNamespaceScope) con l'enumerazione All:

    Funziona esattamente come il metodo MoveToFirstNamespace. Questo metodo, se richiamato, restituisce uno degli spazi dei nomi validi: xmlns:c="C", xmlns:a="Z", xmlns:b="B", , and xmlns:xml="http://www.w3.org/2000/xmlns/". Poiché negli spazi dei nomi non è implicito alcun ordine, non è possibile sapere quale spazio dei nomi verrà restituito alla chiamata al metodo.

    Il metodo MoveToFirstNamespace restituisce False quando non vi è un primo nodo dello spazio dei nomi da esplorare. Tuttavia il metodo MoveToFirstNamespace con l'enumerazione All XPathNamespaceScope restituisce sempre True, in quanto vi è sempre almeno uno spazio dei nomi xmlns:xml a causa dello spazio dei nomi predefinito dichiarato in maniera implicita.

  • MoveToFirstNamespace(XPathNamespaceScope) con l'enumerazione ExcludeXml:

    Non restituisce lo spazio dei nomi xmlns:xml, bensì uno degli spazi dei nomi seguenti: xmlns:c="C", xmlns:a="Z", , xmlns:b="B".

  • MoveToFirstNamespace(XPathNamespaceScope) con l'enumerazione Local:

    Restituisce solo i nodi degli spazi dei nomi definiti con l'elemento, quindi restituisce solo xmlns:c="C".

Utilizzando XPathNamespaceSet come parametro per il metodo MoveToNextNamespace vengono restituiti diversi risultati rispetto all'input, con un comportamento simile a quello descritto per il metodo MoveToFirstNamespace. Il metodo restituisce False quando non vi sono più nodi dello spazio dei nomi da esplorare.

Richiamando MoveToParent dopo aver chiamato una delle due variazioni dei metodi MoveToFirstNamespace riporta allo stesso nodo.

Vedere anche

XPathNavigator in .NET Framework | Tipi di nodo riconosciuti con le query XPath | Esplorazione del set di nodi con le query XPath | Compilazione, selezione, valutazione e corrispondenze con XPath e XPathExpressions