XmlWriter.WriteNode 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.
Kaynak nesnedeki her şeyi geçerli yazıcı örneğine kopyalar.
Aşırı Yüklemeler
WriteNode(XmlReader, Boolean) |
Türetilmiş bir sınıfta geçersiz kılındığında, okuyucudan yazıcıya her şeyi kopyalar ve okuyucuyu bir sonraki eşdüzeyin başına taşır. |
WriteNode(XPathNavigator, Boolean) |
Nesneden yazıcıya XPathNavigator her şeyi kopyalar. XPathNavigator Konumu değişmeden kalır. |
Açıklamalar
Bu yöntemin zaman uyumsuz sürümü için bkz WriteNodeAsync. .
WriteNode(XmlReader, Boolean)
- Kaynak:
- XmlWriter.cs
- Kaynak:
- XmlWriter.cs
- Kaynak:
- XmlWriter.cs
Türetilmiş bir sınıfta geçersiz kılındığında, okuyucudan yazıcıya her şeyi kopyalar ve okuyucuyu bir sonraki eşdüzeyin başına taşır.
public:
virtual void WriteNode(System::Xml::XmlReader ^ reader, bool defattr);
public virtual void WriteNode (System.Xml.XmlReader reader, bool defattr);
abstract member WriteNode : System.Xml.XmlReader * bool -> unit
override this.WriteNode : System.Xml.XmlReader * bool -> unit
Public Overridable Sub WriteNode (reader As XmlReader, defattr As Boolean)
Parametreler
- defattr
- Boolean
true
öğesinin varsayılan özniteliklerini XmlReader
kopyalamak için ; aksi takdirde . false
Özel durumlar
reader
, null
değeridir.
reader
geçersiz karakterler içeriyor.
Önceki XmlWriter bir zaman uyumsuz işlem tamamlanmadan önce bir yöntem çağrıldı. Bu durumda, InvalidOperationException "Zaman uyumsuz bir işlem zaten devam ediyor" iletisiyle oluşturulur.
Örnekler
Aşağıdaki örnek, ilk ve son kitap düğümlerini konsola yazar.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
XmlTextReader^ reader = gcnew XmlTextReader( "books.xml" );
reader->WhitespaceHandling = WhitespaceHandling::None;
// Move the reader to the first book element.
reader->MoveToContent();
reader->Read();
// Create a writer that outputs to the console.
XmlTextWriter^ writer = gcnew XmlTextWriter( Console::Out );
writer->Formatting = Formatting::Indented;
// Write the start tag.
writer->WriteStartElement( "myBooks" );
// Write the first book.
writer->WriteNode( reader, false );
// Skip the second book.
reader->Skip();
// Write the last book.
writer->WriteNode( reader, false );
writer->WriteEndElement();
// Close the writer and the reader.
writer->Close();
reader->Close();
}
using System;
using System.IO;
using System.Xml;
public class Sample{
public static void Main(){
XmlTextReader reader = new XmlTextReader("books.xml");
reader.WhitespaceHandling = WhitespaceHandling.None;
//Move the reader to the first book element.
reader.MoveToContent();
reader.Read();
//Create a writer that outputs to the console.
XmlTextWriter writer = new XmlTextWriter (Console.Out);
writer.Formatting = Formatting.Indented;
//Write the start tag.
writer.WriteStartElement("myBooks");
//Write the first book.
writer.WriteNode(reader, false);
//Skip the second book.
reader.Skip();
//Write the last book.
writer.WriteNode(reader, false);
writer.WriteEndElement();
//Close the writer and the reader.
writer.Close();
reader.Close();
}
}
Imports System.IO
Imports System.Xml
public class Sample
public shared sub Main()
Dim reader as XmlTextReader = new XmlTextReader("books.xml")
reader.WhitespaceHandling = WhitespaceHandling.None
'Move the reader to the first book element.
reader.MoveToContent()
reader.Read()
'Create a writer that outputs to the console.
Dim writer as XmlTextWriter = new XmlTextWriter (Console.Out)
writer.Formatting = Formatting.Indented
'Write the start tag.
writer.WriteStartElement("myBooks")
'Write the first book.
writer.WriteNode(reader, false)
'Skip the second book.
reader.Skip()
'Write the last book.
writer.WriteNode(reader, false)
writer.WriteEndElement()
'Close the writer and the reader.
writer.Close()
reader.Close()
end sub
end class
Örnekte giriş books.xml
olarak dosyası kullanılır.
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
Açıklamalar
Aşağıdaki tabloda bu yöntem için desteklenen düğüm türleri gösterilmektedir.
NodeType | WriteNode Davranışı |
---|---|
None |
Türünden bağımsız olarak tüm düğümleri yazar. Yani, yazıcı öznitelikler XmlReader , işleme yönergeleri, açıklamalar vb. dahil olmak üzere okunan tüm düğümleri kullanır ve yazar. Bu durum, ilk durumunda olduğunda XmlReader oluşur. XmlReader.ReadState(özelliği döndürür ReaderState.Initial ). |
Element |
Öğe düğümünü ve tüm öznitelik düğümlerini yazar. |
Attribute |
İşlem yok. Veya WriteAttributeString yerine kullanınWriteStartAttribute. |
Text |
Metin düğümünü yazar. |
CDATA |
CDATA bölüm düğümünü yazar. |
EntityReference |
Varlık başvuru düğümünü yazar. |
ProcessingInstruction |
İşleme yönerge düğümünü yazar. |
Comment |
Açıklama düğümünü yazar. |
DocumentType |
Belge türü düğümünü yazar. |
SignificantWhitespace |
Önemli boşluk düğümünü yazar. |
Whitespace |
Boşluk düğümünü yazar. |
EndElement |
End öğesi etiketini yazar. |
EndEntity |
İşlem yok. |
XmlDeclaration |
XML bildirim düğümünü yazar. |
Okuyucu ilk durumdaysa, bu yöntem okuyucuyu dosyanın sonuna taşır. Okuyucu zaten dosyanın sonunda veya kapalı durumdaysa, bu yöntem çalışma dışıdır.
Aşağıdaki C# kodu, xml giriş belgesinin tamamını konsola kopyalar:
XmlReader reader = XmlReader.Create(myfile);
XmlWriter writer = XmlWriter.Create(Console.Out);
writer.WriteNode(reader, false);
Kök düğümden taşındıysanız ve belgenin başka bir yerine konumlandırıldıysanız aşağıdaki C# örneği düğümleri doğru bir şekilde yazar.
XmlReader reader = XmlReader.Create(myfile);
reader.Read(); // Read PI
reader.Read(); // Read Comment
reader.Read(); // Read DOCType
XmlWriter writer = XmlWriter.Create(Console.Out);
while (!reader.EOF){
writer.WriteNode(reader, false);
}
Okuyucu boşluk döndürecek şekilde yapılandırılmışsa ve yazıcı çıkışı girintili olarak yapılandırmışsa, WriteNode
garip çıkışlar üretebilir. Temelde çift biçimlendirme elde edeceksiniz.
Bu yöntemin zaman uyumsuz sürümü için bkz WriteNodeAsync. .
Şunlara uygulanır
WriteNode(XPathNavigator, Boolean)
- Kaynak:
- XmlWriter.cs
- Kaynak:
- XmlWriter.cs
- Kaynak:
- XmlWriter.cs
Nesneden yazıcıya XPathNavigator her şeyi kopyalar. XPathNavigator Konumu değişmeden kalır.
public:
virtual void WriteNode(System::Xml::XPath::XPathNavigator ^ navigator, bool defattr);
public virtual void WriteNode (System.Xml.XPath.XPathNavigator navigator, bool defattr);
abstract member WriteNode : System.Xml.XPath.XPathNavigator * bool -> unit
override this.WriteNode : System.Xml.XPath.XPathNavigator * bool -> unit
Public Overridable Sub WriteNode (navigator As XPathNavigator, defattr As Boolean)
Parametreler
- navigator
- XPathNavigator
Kopyalanacak XPathNavigator kaynak.
- defattr
- Boolean
true
varsayılan öznitelikleri kopyalamak için; aksi takdirde , false
.
Özel durumlar
navigator
, null
değeridir.
Önceki XmlWriter bir zaman uyumsuz işlem tamamlanmadan önce bir yöntem çağrıldı. Bu durumda, InvalidOperationException "Zaman uyumsuz bir işlem zaten devam ediyor" iletisiyle oluşturulur.
Örnekler
Aşağıdaki örnek, bir belgeden ilk kitap düğümünü kopyalamak ve konsola yazmak için yöntemini kullanır WriteNode .
using System;
using System.IO;
using System.Xml;
using System.Xml.XPath;
public class Sample
{
public static void Main()
{
XPathDocument doc = new XPathDocument("books.xml");
XPathNavigator nav = doc.CreateNavigator();
// Create a writer that outputs to the console.
XmlWriter writer = XmlWriter.Create(Console.Out);
// Write the start tag.
writer.WriteStartElement("myBooks");
// Write the first book.
nav.MoveToChild("bookstore", "");
nav.MoveToChild("book", "");
writer.WriteNode(nav, false);
// Close the start tag.
writer.WriteEndElement();
// Close the writer.
writer.Close();
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.XPath
Module Module1
Sub Main()
Dim doc As XPathDocument = New XPathDocument("books.xml")
Dim nav As XPathNavigator = doc.CreateNavigator()
' Create a writer that outputs to the console.
Dim writer As XmlWriter = XmlWriter.Create(Console.Out)
' Write the start tag.
writer.WriteStartElement("myBooks")
' Write the first book.
nav.MoveToChild("bookstore", "")
nav.MoveToChild("book", "")
writer.WriteNode(nav, False)
' Close the start tag.
writer.WriteEndElement()
' Close the writer.
writer.Close()
End Sub
End Module
Örnekte giriş olarak books.xml dosyası kullanılır.
<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
Açıklamalar
Aşağıdaki tabloda bu yöntem için desteklenen XPath
düğüm türleri gösterilmektedir.
Xpathnodetype | WriteNode Davranışı |
---|---|
Root |
Türünden bağımsız olarak tüm düğümleri yazar. Yani, yazıcı kök düğümdeki tüm düğümleri XPathNavigator (öznitelikler, işleme yönergeleri, açıklamalar vb.) tüketir ve yazar. |
Element |
Öğe düğümünü ve tüm öznitelik düğümlerini yazar. |
Attribute |
İşlem yok. Veya WriteAttributeString yerine kullanınWriteStartAttribute. |
Text |
Metin düğümünü yazar. |
Namespace |
İşlem yok. WriteStartAttribute Ad alanı bildirimini yazmak için veya WriteAttributeString yöntemini kullanın. |
ProcessingInstruction |
İşleme yönerge düğümünü yazar. |
Comment |
Açıklama düğümünü yazar. |
SignificantWhitespace |
Önemli boşluk düğümünü yazar. |
Whitespace |
Boşluk düğümünü yazar. |
Bu yöntemin zaman uyumsuz sürümü için bkz WriteNodeAsync. .