Extensions.CreateNavigator Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
için bir XPathNavigator XNodeoluşturur.
Aşırı Yüklemeler
CreateNavigator(XNode) |
için bir XPathNavigator XNodeoluşturur. |
CreateNavigator(XNode, XmlNameTable) |
için bir XPathNavigator XNodeoluşturur. , XmlNameTable daha verimli XPath ifade işlemeyi etkinleştirir. |
Açıklamalar
Bu yöntem tarafından döndürülen öğesini kullanarak XML ağacını XPathNavigator düzenleyemezsiniz. CanEdit özelliği döndürürfalse
.
Düğüm XDocumentType için oluşturamazsınızXPathNavigator. Belge türleri XPath veri modeline katılmaz.
Ad alanı bildirimleri soldan sağa bildirilir. Buna karşılık, için XmlDocumentad alanları sağdan sola rapor edilir. Ad alanı bildirimleri XPath veri modelinde sıralanmadığından bu uyumlu bir davranıştır.
yöntemi, bu yöntem MoveToId tarafından döndürülen gezginlerde desteklenmez.
XSLT dönüşümü gerçekleştirmek için bu yöntemi kullanabilirsiniz. XML ağacı oluşturabilir, XML ağacından bir XPathNavigator oluşturabilir, yeni bir belge oluşturabilir ve yeni belgeye yazacak bir XmlWriter oluşturabilirsiniz. Ardından, ve'yi XmlWriter dönüştürmeye geçirerek XPathNavigator XSLT dönüştürmesini çağırabilirsiniz. Dönüştürme başarıyla tamamlandıktan sonra, yeni XML ağacı dönüştürmenin sonuçlarıyla doldurulur.
XSLT dönüşümü gerçekleştirmek için veya XPathNavigatorkullanabilirsinizXmlReader. İki yaklaşım farklı performans özelliklerine sahiptir. Bazı dönüştürmeler kullanırken XmlReaderdaha hızlı yürütülürken, diğerleri kullanılırken XPathNavigatordaha hızlı yürütülür. Performansla ilgili bir sorun varsa, sizin koşullarınızda hangisinin daha iyi performans göstereceğini belirlemek için her yaklaşımla denemeler yapmanız önerilir.
CreateNavigator(XNode)
için bir XPathNavigator XNodeoluşturur.
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
Parametreler
Döndürülenler
XPathNavigator XPath sorgularını işleyebilen.
Örnekler
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)
Bu örnek aşağıdaki çıkışı oluşturur:
<Root>
<C1>Child1 data</C1>
<C2>Child2 data</C2>
</Root>
Açıklamalar
Bu yöntem tarafından döndürülen öğesini kullanarak XML ağacını XPathNavigator düzenleyemezsiniz. CanEdit özelliği döndürürfalse
.
Düğüm XDocumentType için oluşturamazsınızXPathNavigator. Belge türleri XPath veri modeline katılmaz.
Ad alanı bildirimleri soldan sağa bildirilir. Buna karşılık, ad alanları için XmlDocument sağdan sola rapor edilir. Ad alanı bildirimleri XPath veri modelinde sıralanmadığından bu uyumlu bir davranıştır.
yöntemi, bu yöntem MoveToId tarafından döndürülen gezginlerde desteklenmez.
XSLT dönüşümü gerçekleştirmek için bu yöntemi kullanabilirsiniz. XML ağacı oluşturabilir, XML ağacından bir XPathNavigator oluşturabilir, yeni bir belge oluşturabilir ve yeni belgeye yazacak bir XmlWriter oluşturabilirsiniz. Ardından, ve'yi XmlWriter dönüştürmeye geçirerek XSLT dönüşümünü XPathNavigator çağırabilirsiniz. Dönüştürme başarıyla tamamlandıktan sonra, yeni XML ağacı dönüştürmenin sonuçlarıyla doldurulur.
XSLT dönüşümü gerçekleştirmek için veya XPathNavigatorkullanabilirsinizXmlReader. İki yaklaşım farklı performans özelliklerine sahiptir. Bazı dönüştürmeler kullanırken XmlReaderdaha hızlı yürütülürken, diğerleri kullanılırken XPathNavigatordaha hızlı yürütülür. Performansla ilgili bir sorun varsa, sizin koşullarınızda hangisinin daha iyi performans göstereceğini belirlemek için her yaklaşımla denemeler yapmanız önerilir.
Şunlara uygulanır
CreateNavigator(XNode, XmlNameTable)
için bir XPathNavigator XNodeoluşturur. , XmlNameTable daha verimli XPath ifade işlemeyi etkinleştirir.
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
Parametreler
- nameTable
- XmlNameTable
XmlNameTable tarafından XPathNavigatorkullanılacak A.
Döndürülenler
XPathNavigator XPath sorgularını işleyebilen.
Açıklamalar
Bu yöntem tarafından döndürülen öğesini kullanarak XML ağacını XPathNavigator düzenleyemezsiniz. CanEdit özelliği döndürürfalse
.
Düğüm XDocumentType için oluşturamazsınızXPathNavigator. Belge türleri XPath veri modeline katılmaz.
Ad alanı bildirimleri soldan sağa bildirilir. Buna karşılık, ad alanları için XmlDocument sağdan sola rapor edilir. Ad alanı bildirimleri XPath veri modelinde sıralanmadığından bu uyumlu bir davranıştır.
yöntemi, bu yöntem MoveToId tarafından döndürülen gezginlerde desteklenmez.
oluşturmak XPathNavigatoriçin bu yöntemle bir XmlNameTable kullanırsanız, XPath ifadelerini değerlendirirken daha iyi performans elde edersiniz.