Extensions.CreateNavigator Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea un oggetto XPathNavigator per un oggetto XNode.
Overload
| Nome | Descrizione |
|---|---|
| CreateNavigator(XNode) |
Crea un oggetto XPathNavigator per un oggetto XNode. |
| CreateNavigator(XNode, XmlNameTable) |
Crea un oggetto XPathNavigator per un oggetto XNode. XmlNameTable consente un'elaborazione delle espressioni XPath più efficiente. |
Commenti
Non è possibile modificare l'albero XML utilizzando l'oggetto XPathNavigator restituito da questo metodo. La CanEdit proprietà restituisce false.
Non è possibile creare un oggetto XPathNavigator per un XDocumentType nodo. I tipi di documento non fanno parte del modello di dati XPath.
Le dichiarazioni dello spazio dei nomi vengono segnalate da sinistra a destra. Al contrario, per XmlDocument, gli spazi dei nomi vengono segnalati da destra a sinistra. Questo comportamento è conforme perché le dichiarazioni dello spazio dei nomi non sono ordinate nel modello di dati XPath.
Il metodo MoveToId non è supportato per gli strumenti di navigazione restituiti da questo metodo.
È possibile usare questo metodo per eseguire una trasformazione XSLT. È possibile creare un albero XML, crearne uno XPathNavigator dall'albero XML, creare un nuovo documento e creare un XmlWriter oggetto che scriverà nel nuovo documento. È quindi possibile richiamare la trasformazione XSLT, passando e XPathNavigatorXmlWriter alla trasformazione . Al termine della trasformazione, il nuovo albero XML viene popolato con i risultati della trasformazione.
Per eseguire una trasformazione XSLT, è possibile usare un XmlReader oggetto o .XPathNavigator I due approcci hanno caratteristiche di prestazioni diverse. Alcune trasformazioni verranno eseguite più velocemente quando si usa un XmlReaderoggetto e altre verranno eseguite più velocemente quando si usa un oggetto XPathNavigator. Se le prestazioni sono un problema, è consigliabile sperimentare con ogni approccio per determinare quali prestazioni miglioreranno nelle circostanze.
CreateNavigator(XNode)
- Origine:
- XNodeNavigator.cs
- Origine:
- XNodeNavigator.cs
- Origine:
- XNodeNavigator.cs
- Origine:
- XNodeNavigator.cs
- Origine:
- XNodeNavigator.cs
Crea un oggetto XPathNavigator per un oggetto XNode.
public:
[System::Runtime::CompilerServices::Extension]
static System::Xml::XPath::XPathNavigator ^ CreateNavigator(System::Xml::Linq::XNode ^ node);
public static System.Xml.XPath.XPathNavigator CreateNavigator(this System.Xml.Linq.XNode node);
static member CreateNavigator : System.Xml.Linq.XNode -> System.Xml.XPath.XPathNavigator
<Extension()>
Public Function CreateNavigator (node As XNode) As XPathNavigator
Parametri
Restituisce
Oggetto XPathNavigator in grado di elaborare query XPath.
Esempio
using System.Xml;
using System.Xml.Linq;
using System.Xml.XPath;
using System.Xml.Xsl;
string xslMarkup = @"<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:template match='/Parent'>
<Root>
<C1><xsl:value-of select='Child1'/></C1>
<C2><xsl:value-of select='Child2'/></C2>
</Root>
</xsl:template>
</xsl:stylesheet>";
XDocument xmlTree = new(
new XElement("Parent",
new XElement("Child1", "Child1 data"),
new XElement("Child2", "Child2 data")
)
);
XDocument newTree = new();
using (XmlWriter writer = newTree.CreateWriter())
{
// Load the style sheet.
XslCompiledTransform xslt = new();
xslt.Load(XmlReader.Create(new StringReader(xslMarkup)));
// Execute the transform and output the results to a writer.
xslt.Transform(xmlTree.CreateNavigator(), writer);
}
Console.WriteLine(newTree);
Dim xslMarkup As XDocument = _
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:template match='/Parent'>
<Root>
<C1><xsl:value-of select='Child1'/></C1>
<C2><xsl:value-of select='Child2'/></C2>
</Root>
</xsl:template>
</xsl:stylesheet>
Dim xmlTree As XDocument = _
<?xml version='1.0'?>
<Parent>
<Child1>Child1 data</Child1>
<Child2>Child2 data</Child2>
</Parent>
Dim newTree As XDocument = New XDocument()
Using writer As XmlWriter = newTree.CreateWriter()
' Load the style sheet.
Dim xslt As XslCompiledTransform = _
New XslCompiledTransform()
xslt.Load(xslMarkup.CreateReader())
' Execute the transform and output the results to a writer.
xslt.Transform(xmlTree.CreateNavigator(), writer)
End Using
Console.WriteLine(newTree)
In questo esempio viene generato l'output seguente:
<Root>
<C1>Child1 data</C1>
<C2>Child2 data</C2>
</Root>
Commenti
Non è possibile modificare l'albero XML utilizzando l'oggetto XPathNavigator restituito da questo metodo. La CanEdit proprietà restituisce false.
Non è possibile creare un oggetto XPathNavigator per un XDocumentType nodo. I tipi di documento non fanno parte del modello di dati XPath.
Le dichiarazioni dello spazio dei nomi vengono segnalate da sinistra a destra. Al contrario, per XmlDocument gli spazi dei nomi vengono segnalati da destra a sinistra. Questo comportamento è conforme perché le dichiarazioni dello spazio dei nomi non sono ordinate nel modello di dati XPath.
Il metodo MoveToId non è supportato per gli strumenti di navigazione restituiti da questo metodo.
È possibile usare questo metodo per eseguire una trasformazione XSLT. È possibile creare un albero XML, crearne uno XPathNavigator dall'albero XML, creare un nuovo documento e creare un XmlWriter oggetto che scriverà nel nuovo documento. È quindi possibile richiamare la trasformazione XSLT, passando e XPathNavigatorXmlWriter alla trasformazione. Al termine della trasformazione, il nuovo albero XML viene popolato con i risultati della trasformazione.
Per eseguire una trasformazione XSLT, è possibile usare un XmlReader oggetto o .XPathNavigator I due approcci hanno caratteristiche di prestazioni diverse. Alcune trasformazioni verranno eseguite più velocemente quando si usa un XmlReaderoggetto e altre verranno eseguite più velocemente quando si usa un oggetto XPathNavigator. Se le prestazioni sono un problema, è consigliabile sperimentare con ogni approccio per determinare quali prestazioni miglioreranno nelle circostanze.
Si applica a
CreateNavigator(XNode, XmlNameTable)
- Origine:
- XNodeNavigator.cs
- Origine:
- XNodeNavigator.cs
- Origine:
- XNodeNavigator.cs
- Origine:
- XNodeNavigator.cs
- Origine:
- XNodeNavigator.cs
Crea un oggetto XPathNavigator per un oggetto XNode. XmlNameTable consente un'elaborazione delle espressioni XPath più efficiente.
public:
[System::Runtime::CompilerServices::Extension]
static System::Xml::XPath::XPathNavigator ^ CreateNavigator(System::Xml::Linq::XNode ^ node, System::Xml::XmlNameTable ^ nameTable);
public static System.Xml.XPath.XPathNavigator CreateNavigator(this System.Xml.Linq.XNode node, System.Xml.XmlNameTable? nameTable);
public static System.Xml.XPath.XPathNavigator CreateNavigator(this System.Xml.Linq.XNode node, System.Xml.XmlNameTable nameTable);
static member CreateNavigator : System.Xml.Linq.XNode * System.Xml.XmlNameTable -> System.Xml.XPath.XPathNavigator
<Extension()>
Public Function CreateNavigator (node As XNode, nameTable As XmlNameTable) As XPathNavigator
Parametri
- nameTable
- XmlNameTable
Oggetto XmlNameTable da utilizzare da XPathNavigator.
Restituisce
Oggetto XPathNavigator in grado di elaborare query XPath.
Commenti
Non è possibile modificare l'albero XML utilizzando l'oggetto XPathNavigator restituito da questo metodo. La CanEdit proprietà restituisce false.
Non è possibile creare un oggetto XPathNavigator per un XDocumentType nodo. I tipi di documento non fanno parte del modello di dati XPath.
Le dichiarazioni dello spazio dei nomi vengono segnalate da sinistra a destra. Al contrario, per XmlDocument gli spazi dei nomi vengono segnalati da destra a sinistra. Questo comportamento è conforme perché le dichiarazioni dello spazio dei nomi non sono ordinate nel modello di dati XPath.
Il metodo MoveToId non è supportato per gli strumenti di navigazione restituiti da questo metodo.
Se si usa un oggetto XmlNameTable con questo metodo per creare , XPathNavigatorsi otterranno prestazioni migliori durante la valutazione delle espressioni XPath.