XNode.CreateReader 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.
Bu düğüm için bir XmlReader oluşturur.
Aşırı Yüklemeler
CreateReader() |
Bu düğüm için bir XmlReader oluşturur. |
CreateReader(ReaderOptions) |
parametresi tarafından |
CreateReader()
Bu düğüm için bir XmlReader oluşturur.
public:
System::Xml::XmlReader ^ CreateReader();
public System.Xml.XmlReader CreateReader ();
member this.CreateReader : unit -> System.Xml.XmlReader
Public Function CreateReader () As XmlReader
Döndürülenler
XmlReader Bu düğümü ve alt öğelerini okumak için kullanılabilecek bir.
Örnekler
Aşağıdaki örnek bir XML ağacı oluşturur, yöntemini kullanarak CreateReader bir XmlReader oluşturur ve okuyucuyu kullanarak bir XmlDocument oluşturur.
XDocument xmlTree = new XDocument(
new XElement("Root",
new XAttribute("Att1", "Attribute Content"),
new XElement("Child1", 1),
new XElement("Child2", 2)
)
);
XmlReader reader = xmlTree.CreateReader();
reader.MoveToContent();
XmlDocument doc = new XmlDocument();
XmlNode cd = doc.ReadNode(reader);
doc.AppendChild(cd);
Console.WriteLine(doc.OuterXml);
Dim xmlTree As XDocument = _
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Root Att1="Attribute Content">
<Child1>1</Child1>
<Child2>2</Child2>
</Root>
Dim reader As XmlReader = xmlTree.CreateReader()
reader.MoveToContent()
Dim doc As XmlDocument = New XmlDocument()
Dim cd As XmlNode = doc.ReadNode(reader)
doc.AppendChild(cd)
Console.WriteLine(doc.OuterXml)
Bu örnek aşağıdaki çıkışı oluşturur:
<Root Att1="Attribute Content"><Child1>1</Child1><Child2>2</Child2></Root>
Bu yöntemin başka bir kullanımı da XSLT dönüşümü yapmaktır. XML ağacı oluşturabilir, XML ağacından bir XmlReader 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 XmlReader XSLT dönüştürmesini çağırabilirsiniz. Dönüştürme başarıyla tamamlandıktan sonra, yeni XML ağacı dönüşümün sonuçlarıyla doldurulur.
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 XDocument(
new XElement("Parent",
new XElement("Child1", "Child1 data"),
new XElement("Child2", "Child2 data")
)
);
XDocument newTree = new XDocument();
using (XmlWriter writer = newTree.CreateWriter()) {
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(XmlReader.Create(new StringReader(xslMarkup)));
// Execute the transform and output the results to a writer.
xslt.Transform(xmlTree.CreateReader(), 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 XElement = _
<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.CreateReader(), 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
Genellikle bir ile başka bir XmlReaderbileşen sağlamanız gerektiğinde bu yöntemi kullanırsınız. Örneğin, bir LINQ to XML ağacından bir XmlReader oluşturabilir ve ardından bu okuyucuya Loadgeçirebilirsiniz.
tarafından Create döndürülen tüm okuyucular okuyucuları normalleştiriyor. Her zaman satır sonu normalleştirmesi ve özniteliklerin tam normalleştirmesini gerçekleştirirler. Buna karşılık, XmlReader tarafından CreateReader döndürülen bir normalleştirme okuyucusu değildir. Hiçbir boşluğu dönüştürmez. Ayrıca öznitelikleri öznitelik adı sırasına göre değil, eklendikleri sırayla döndürür.
LINQ to XML özniteliklerin varsayılan öznitelik olup olmadığıyla ilgili bilgileri tutmaz. IsDefault özniteliğinin varsayılan bir değerden doldurulup doldurulmadığından bağımsız olarak her zaman false döndürür.
PUBLIC
üzerindeki XDocumentType ve SYSTEM
sahte öznitelikleri yöntemi aracılığıyla XmlReader.MoveToAttribute kullanılamaz. Bunlar yalnızca özniteliğin XmlReader.GetAttribute tam adını parametre olarak alan yöntemi aracılığıyla kullanılabilir. veya SYSTEM
özniteliklerini almanız PUBLIC
gerekiyorsa yöntemini kullanmanız XmlReader.GetAttribute gerekir.
Base64 ve BinHex verileri desteklenmez. Bu tür verileri almaya çalışırsanız (örneğin, çağrısı ReadElementContentAsBase64yaparak), okuyucu oluşturur NotSupportedException.
Bildirim xml
okuyucu tarafından gösterilmez. Okurken türünde XmlDeclarationbir düğümle karşılaşmazsınız.
Ayrıca bkz.
Şunlara uygulanır
CreateReader(ReaderOptions)
parametresi tarafından readerOptions
belirtilen seçeneklerle bir XmlReader oluşturur.
public:
System::Xml::XmlReader ^ CreateReader(System::Xml::Linq::ReaderOptions readerOptions);
public System.Xml.XmlReader CreateReader (System.Xml.Linq.ReaderOptions readerOptions);
member this.CreateReader : System.Xml.Linq.ReaderOptions -> System.Xml.XmlReader
Public Function CreateReader (readerOptions As ReaderOptions) As XmlReader
Parametreler
- readerOptions
- ReaderOptions
ReaderOptions Yinelenen ad alanlarının atlanıp atılmayacağını belirten bir nesne.
Döndürülenler
Bir XmlReader nesnesi.