Extensions.CreateNavigator Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
XPathNavigator Membuat untuk XNode.
Overload
| Nama | Deskripsi |
|---|---|
| CreateNavigator(XNode) |
XPathNavigator Membuat untuk XNode. |
| CreateNavigator(XNode, XmlNameTable) |
XPathNavigator Membuat untuk XNode. memungkinkan XmlNameTable pemrosesan ekspresi XPath yang lebih efisien. |
Keterangan
Anda tidak dapat mengedit pohon XML dengan menggunakan XPathNavigator yang dikembalikan oleh metode ini. Properti CanEdit mengembalikan false.
Anda tidak dapat membuat XPathNavigator untuk simpul XDocumentType . Jenis dokumen tidak berpartisipasi dalam model data XPath.
Deklarasi namespace dilaporkan dari kiri ke kanan. Sebaliknya, untuk XmlDocument, namespace dilaporkan dari kanan ke kiri. Ini adalah perilaku yang sesuai karena deklarasi namespace tidak diurutkan dalam model data XPath.
Metode MoveToId ini tidak didukung untuk navigator yang dikembalikan oleh metode ini.
Anda dapat menggunakan metode ini untuk melakukan transformasi XSLT. Anda bisa membuat pohon XML, membuat XPathNavigator dari pohon XML, membuat dokumen baru, dan membuat XmlWriter yang akan menulis ke dalam dokumen baru. Kemudian, Anda dapat memanggil transformasi XSLT, meneruskan XPathNavigator dan XmlWriter ke transformasi. Setelah transformasi berhasil diselesaikan, pohon XML baru diisi dengan hasil transformasi.
Untuk melakukan transformasi XSLT, Anda dapat menggunakan XmlReader atau XPathNavigator. Kedua pendekatan tersebut memiliki karakteristik performa yang berbeda. Beberapa transformasi akan dijalankan lebih cepat saat menggunakan , dan yang XmlReaderlain akan dijalankan lebih cepat saat menggunakan XPathNavigator. Jika performa menjadi perhatian, kami sarankan Anda bereksperimen dengan setiap pendekatan untuk menentukan mana yang akan berkinerja lebih baik dalam keadaan Anda.
CreateNavigator(XNode)
- Sumber:
- XNodeNavigator.cs
- Sumber:
- XNodeNavigator.cs
- Sumber:
- XNodeNavigator.cs
- Sumber:
- XNodeNavigator.cs
- Sumber:
- XNodeNavigator.cs
XPathNavigator Membuat untuk 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
Parameter
Mengembalikan
Yang XPathNavigator dapat memproses kueri XPath.
Contoh
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)
Contoh ini menghasilkan output berikut:
<Root>
<C1>Child1 data</C1>
<C2>Child2 data</C2>
</Root>
Keterangan
Anda tidak dapat mengedit pohon XML dengan menggunakan XPathNavigator yang dikembalikan oleh metode ini. Properti CanEdit mengembalikan false.
Anda tidak dapat membuat XPathNavigator untuk simpul XDocumentType . Jenis dokumen tidak berpartisipasi dalam model data XPath.
Deklarasi namespace dilaporkan dari kiri ke kanan. Sebaliknya, untuk XmlDocument namespace dilaporkan dari kanan ke kiri. Ini adalah perilaku yang sesuai karena deklarasi namespace tidak diurutkan dalam model data XPath.
Metode MoveToId ini tidak didukung untuk navigator yang dikembalikan oleh metode ini.
Anda dapat menggunakan metode ini untuk melakukan transformasi XSLT. Anda bisa membuat pohon XML, membuat XPathNavigator dari pohon XML, membuat dokumen baru, dan membuat XmlWriter yang akan menulis ke dalam dokumen baru. Kemudian, Anda dapat memanggil transformasi XSLT, meneruskan XPathNavigator dan XmlWriter ke transformasi. Setelah transformasi berhasil diselesaikan, pohon XML baru diisi dengan hasil transformasi.
Untuk melakukan transformasi XSLT, Anda dapat menggunakan XmlReader atau XPathNavigator. Kedua pendekatan tersebut memiliki karakteristik performa yang berbeda. Beberapa transformasi akan dijalankan lebih cepat saat menggunakan , dan yang XmlReaderlain akan dijalankan lebih cepat saat menggunakan XPathNavigator. Jika performa menjadi perhatian, kami sarankan Anda bereksperimen dengan setiap pendekatan untuk menentukan mana yang akan berkinerja lebih baik dalam keadaan Anda.
Berlaku untuk
CreateNavigator(XNode, XmlNameTable)
- Sumber:
- XNodeNavigator.cs
- Sumber:
- XNodeNavigator.cs
- Sumber:
- XNodeNavigator.cs
- Sumber:
- XNodeNavigator.cs
- Sumber:
- XNodeNavigator.cs
XPathNavigator Membuat untuk XNode. memungkinkan XmlNameTable pemrosesan ekspresi XPath yang lebih efisien.
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
Parameter
- nameTable
- XmlNameTable
yang XmlNameTable akan digunakan oleh XPathNavigator.
Mengembalikan
Yang XPathNavigator dapat memproses kueri XPath.
Keterangan
Anda tidak dapat mengedit pohon XML menggunakan XPathNavigator yang dikembalikan oleh metode ini. Properti CanEdit mengembalikan false.
Anda tidak dapat membuat XPathNavigator untuk simpul XDocumentType . Jenis dokumen tidak berpartisipasi dalam model data XPath.
Deklarasi namespace dilaporkan dari kiri ke kanan. Sebaliknya, untuk XmlDocument namespace dilaporkan dari kanan ke kiri. Ini adalah perilaku yang sesuai karena deklarasi namespace tidak diurutkan dalam model data XPath.
Metode MoveToId ini tidak didukung untuk navigator yang dikembalikan oleh metode ini.
Jika Anda menggunakan XmlNameTable dengan metode ini untuk membuat XPathNavigator, Anda akan mendapatkan performa yang lebih baik saat mengevaluasi ekspresi XPath.