Extensions.CreateNavigator Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří pro XPathNavigator objekt XNode.
Přetížení
| Name | Description |
|---|---|
| CreateNavigator(XNode) |
Vytvoří pro XPathNavigator objekt XNode. |
| CreateNavigator(XNode, XmlNameTable) |
Vytvoří pro XPathNavigator objekt XNode. Umožňuje XmlNameTable efektivnější zpracování výrazů XPath. |
Poznámky
Strom XML nelze upravit pomocí XPathNavigator metody, která je vrácena touto metodou. Vlastnost CanEdit vrátí false.
Pro uzel nelze vytvořit XPathNavigatorXDocumentType . Typy dokumentů nejsou součástí datového modelu XPath.
Deklarace oboru názvů se hlásí zleva doprava. Naproti tomu pro XmlDocument, obory názvů jsou hlášeny zprava doleva. Toto chování je v souladu, protože deklarace oboru názvů nejsou v datovém modelu XPath seřazeny.
MoveToId Metoda není podporována pro navigátory, které jsou vráceny touto metodou.
Tuto metodu můžete použít k provedení transformace XSLT. Můžete vytvořit strom XML, vytvořit ze XPathNavigator stromu XML, vytvořit nový dokument a vytvořit XmlWriter dokument, který se zapíše do nového dokumentu. Potom můžete vyvolat transformaci XSLT a předat XPathNavigator ji do XmlWriter transformace. Po úspěšném dokončení transformace se nový strom XML naplní výsledky transformace.
Chcete-li provést transformaci XSLT, můžete použít buď nebo XmlReaderXPathNavigator. Dva přístupy mají různé charakteristiky výkonu. Některé transformace se spustí rychleji při použití a XmlReaderjiné se spustí rychleji při použití XPathNavigator. Pokud jde o výkon, doporučujeme experimentovat s každým přístupem, abyste zjistili, který z vašich okolností bude fungovat lépe.
CreateNavigator(XNode)
- Zdroj:
- XNodeNavigator.cs
- Zdroj:
- XNodeNavigator.cs
- Zdroj:
- XNodeNavigator.cs
- Zdroj:
- XNodeNavigator.cs
- Zdroj:
- XNodeNavigator.cs
Vytvoří pro XPathNavigator objekt 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
Parametry
Návraty
Dotaz XPath XPathNavigator může zpracovávat.
Příklady
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)
Tento příklad vytvoří následující výstup:
<Root>
<C1>Child1 data</C1>
<C2>Child2 data</C2>
</Root>
Poznámky
Strom XML nelze upravit pomocí XPathNavigator vrácené touto metodou. Vlastnost CanEdit vrátí false.
Pro uzel nelze vytvořit XPathNavigatorXDocumentType . Typy dokumentů nejsou součástí datového modelu XPath.
Deklarace oboru názvů se hlásí zleva doprava. Naproti tomu u XmlDocument oborů názvů se hlásí zprava doleva. Toto chování je v souladu, protože deklarace oboru názvů nejsou v datovém modelu XPath seřazeny.
MoveToId Metoda není podporována pro navigátory, které jsou vráceny touto metodou.
Tuto metodu můžete použít k provedení transformace XSLT. Můžete vytvořit strom XML, vytvořit ze XPathNavigator stromu XML, vytvořit nový dokument a vytvořit XmlWriter dokument, který se zapíše do nového dokumentu. Potom můžete vyvolat transformaci XSLT a XmlWriter předat XPathNavigator ji do transformace. Po úspěšném dokončení transformace se nový strom XML naplní výsledky transformace.
Chcete-li provést transformaci XSLT, můžete použít buď nebo XmlReaderXPathNavigator. Dva přístupy mají různé charakteristiky výkonu. Některé transformace se spustí rychleji při použití a XmlReaderjiné se spustí rychleji při použití XPathNavigator. Pokud jde o výkon, doporučujeme experimentovat s každým přístupem, abyste zjistili, který z vašich okolností bude fungovat lépe.
Platí pro
CreateNavigator(XNode, XmlNameTable)
- Zdroj:
- XNodeNavigator.cs
- Zdroj:
- XNodeNavigator.cs
- Zdroj:
- XNodeNavigator.cs
- Zdroj:
- XNodeNavigator.cs
- Zdroj:
- XNodeNavigator.cs
Vytvoří pro XPathNavigator objekt XNode. Umožňuje XmlNameTable efektivnější zpracování výrazů XPath.
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
Parametry
- nameTable
- XmlNameTable
A XmlNameTable , kterou použije XPathNavigator.
Návraty
Dotaz XPath XPathNavigator může zpracovávat.
Poznámky
Strom XML nelze upravit pomocí XPathNavigator vráceného touto metodou. Vlastnost CanEdit vrátí false.
Pro uzel nelze vytvořit XPathNavigatorXDocumentType . Typy dokumentů nejsou součástí datového modelu XPath.
Deklarace oboru názvů se hlásí zleva doprava. Naproti tomu u XmlDocument oborů názvů se hlásí zprava doleva. Toto chování je v souladu, protože deklarace oboru názvů nejsou v datovém modelu XPath seřazeny.
MoveToId Metoda není podporována pro navigátory, které jsou vráceny touto metodou.
Pokud k vytvoření XPathNavigatorpoužijete s touto metodou XmlNameTable , získáte lepší výkon při vyhodnocování výrazů XPath.