XmlReader Sınıf

Tanım

XML verilerine hızlı, önbelleğe alınmamış ve salt iletme erişimi sağlayan bir okuyucu temsil eder.Represents a reader that provides fast, noncached, forward-only access to XML data.

public ref class XmlReader abstract : IDisposable
public ref class XmlReader abstract
public abstract class XmlReader : IDisposable
public abstract class XmlReader
type XmlReader = class
    interface IDisposable
type XmlReader = class
Public MustInherit Class XmlReader
Implements IDisposable
Public MustInherit Class XmlReader
Devralma
XmlReader
Türetilmiş
Uygulamalar

Örnekler

Aşağıdaki örnek kod, XML ayrıştırmak için zaman uyumsuz API 'nin nasıl kullanılacağını gösterir.The following example code shows how to use the asynchronous API to parse XML.

async Task TestReader(System.IO.Stream stream)
{
    XmlReaderSettings settings = new XmlReaderSettings();
    settings.Async = true;

    using (XmlReader reader = XmlReader.Create(stream, settings))
    {
        while (await reader.ReadAsync())
        {
            switch (reader.NodeType)
            {
                case XmlNodeType.Element:
                    Console.WriteLine("Start Element {0}", reader.Name);
                    break;
                case XmlNodeType.Text:
                    Console.WriteLine("Text Node: {0}",
                             await reader.GetValueAsync());
                    break;
                case XmlNodeType.EndElement:
                    Console.WriteLine("End Element {0}", reader.Name);
                    break;
                default:
                    Console.WriteLine("Other node {0} with value {1}",
                                    reader.NodeType, reader.Value);
                    break;
            }
        }
    }
}
Public Async Function TestReader(stream As System.IO.Stream) As Task
    Dim settings As New XmlReaderSettings()
    settings.Async = True

    Using reader As XmlReader = XmlReader.Create(stream, settings)
        While (Await reader.ReadAsync())
            Select Case (reader.NodeType)
                Case XmlNodeType.Element
                    Console.WriteLine("Start Element {0}", reader.Name)
                Case XmlNodeType.Text
                    Console.WriteLine("Text Node: {0}",
                             Await reader.GetValueAsync())
                Case XmlNodeType.EndElement
                    Console.WriteLine("End Element {0}", reader.Name)
                Case Else
                    Console.WriteLine("Other node {0} with value {1}",
                                    reader.NodeType, reader.Value)
            End Select
        End While
    End Using
End Function

Açıklamalar

XmlReader belgedeki veya akıştaki XML verilerine yalnızca ileri, salt okuma erişimi sağlar.XmlReader provides forward-only, read-only access to XML data in a document or stream. Bu sınıf W3C Genişletilebilir Biçimlendirme Dili (XML) 1,0 (dördüncü sürüm) ve XML 1,0 (üçüncü sürüm) önerilerinin içindeki ad alanlarına uygundur.This class conforms to the W3C Extensible Markup Language (XML) 1.0 (fourth edition) and the Namespaces in XML 1.0 (third edition) recommendations.

XmlReader Yöntemler, XML verilerinden geçiş yapmanızı ve bir düğümün içeriğini okumanızı sağlar.XmlReader methods let you move through XML data and read the contents of a node. Sınıfının özellikleri, okuyucunun bulunduğu geçerli düğümün değerini yansıtır.The properties of the class reflect the value of the current node, which is where the reader is positioned. ReadStateÖzellik değeri, XML okuyucunun geçerli durumunu gösterir.The ReadState property value indicates the current state of the XML reader. Örneğin, özelliği ReadState.Initial XmlReader.Read yöntemi tarafından ve yöntemi tarafından olarak ayarlanır ReadState.Closed XmlReader.Close .For example, the property is set to ReadState.Initial by the XmlReader.Read method and ReadState.Closed by the XmlReader.Close method. XmlReader Ayrıca, veri uygunluk denetimleri ve bir DTD veya şemaya karşı doğrulama sağlar.XmlReader also provides data conformance checks and validation against a DTD or schema.

XmlReader verileri almak için bir çekme modeli kullanır.XmlReader uses a pull model to retrieve data. Bu model:This model:

  • Doğal, yukarıdan aşağı yordamsal bir iyileştirme ile durum yönetimini basitleştirir.Simplifies state management by a natural, top-down procedural refinement.

  • Birden çok giriş akışını ve katmanlanışını destekler.Supports multiple input streams and layering.

  • İstemcinin, ayrıştırıcının dizenin doğrudan yazıldığı bir arabellek vermesini sağlar ve bu nedenle ek bir dize kopyasının zorunludur önler.Enables the client to give the parser a buffer into which the string is directly written, and thus avoids the necessity of an extra string copy.

  • Seçmeli işlemeyi destekler.Supports selective processing. İstemci, öğeleri atlayabilir ve uygulamayı ilgilenmiş olanları işleyebilir.The client can skip items and process those that are of interest to the application. Ayrıca, XML akışının işlenme biçimini (örneğin, normalleştirme) yönetmek için önceden özellikleri de ayarlayabilirsiniz.You can also set properties in advance to manage how the XML stream is processed (for example, normalization).

Bu bölümde bulunanlar:In this section:

XML okuyucusu oluşturma Creating an XML reader
XML verileri doğrulanıyor Validating XML data
Veri uyumluluğu Data conformance
Düğümler arasında gezinme Navigating through nodes
XML öğelerini okuma Reading XML elements
XML özniteliklerini okuma Reading XML attributes
XML içeriğini okuma Reading XML content
CLR türlerine dönüştürme Converting to CLR types
Zaman uyumsuz programlama Asynchronous programming
Güvenlik konularıSecurity considerations

XML okuyucusu oluşturmaCreating an XML reader

CreateBir örnek oluşturmak için yöntemini kullanın XmlReader .Use the Create method to create an XmlReader instance.

.NET Framework, sınıfının,, ve sınıfları gibi somut uygulamalarını sağlasa da, XmlReader XmlTextReader XmlNodeReader XmlValidatingReader yalnızca bu senaryolarda özelleştirilmiş sınıfları kullanmanızı öneririz:Although the .NET Framework provides concrete implementations of the XmlReader class, such as the XmlTextReader, XmlNodeReader, and the XmlValidatingReader classes, we recommend that you use the specialized classes only in these scenarios:

  • Bir nesneden bir XML DOM alt ağacı okumak istediğinizde XmlNode , XmlNodeReader sınıfını kullanın.When you want to read an XML DOM subtree from an XmlNode object, use the XmlNodeReader class. (Ancak, bu sınıf DTD veya şema doğrulamayı desteklemez.)(However, this class doesn't support DTD or schema validation.)

  • İstek üzerine varlıkları genişletmeniz gerekiyorsa, metin içeriğinizin normalleştirilmesini istemezsiniz veya varsayılan özniteliklerin döndürülmesini istemezsiniz, XmlTextReader sınıfını kullanın.If you must expand entities on request, you don't want your text content normalized, or you don't want default attributes returned, use the XmlTextReader class.

XML okuyucusunda etkinleştirmek istediğiniz özellik kümesini belirtmek için System.Xml.XmlReaderSettings yöntemine bir nesne geçirin Create .To specify the set of features you want to enable on the XML reader, pass an System.Xml.XmlReaderSettings object to the Create method. System.Xml.XmlReaderSettingsAynı işlevselliğe sahip birden fazla okuyucu oluşturmak için tek bir nesne kullanabilir veya System.Xml.XmlReaderSettings farklı bir özellikler kümesiyle yeni bir okuyucu oluşturmak için nesneyi değiştirebilirsiniz.You can use a single System.Xml.XmlReaderSettings object to create multiple readers with the same functionality, or modify the System.Xml.XmlReaderSettings object to create a new reader with a different set of features. Ayrıca, mevcut bir okuyucuya kolayca özellikler ekleyebilirsiniz.You can also easily add features to an existing reader.

Bir System.Xml.XmlReaderSettings nesne kullanmıyorsanız, varsayılan ayarlar kullanılır.If you don't use a System.Xml.XmlReaderSettings object, default settings are used. CreateAyrıntılar için başvuru sayfasına bakın.See the Create reference page for details.

XmlReader bir XmlException XML ayrıştırma hataları oluşturur.XmlReader throws an XmlException on XML parse errors. Bir özel durum oluşturulduktan sonra, okuyucunun durumu tahmin edilebilir değildir.After an exception is thrown, the state of the reader is not predictable. Örneğin, bildirilen düğüm türü, geçerli düğümün gerçek düğüm türünden farklı olabilir.For example, the reported node type may be different from the actual node type of the current node. ReadStateOkuyucunun hata durumunda olup olmadığını denetlemek için özelliğini kullanın.Use the ReadState property to check whether the reader is in error state.

XML verileri doğrulanıyorValidating XML data

Bir XML belgesinin yapısını ve öğe ilişkilerini, veri türlerini ve içerik kısıtlamalarını tanımlamak için bir belge türü tanımı (DTD) veya XML şeması tanım dili (XSD) şeması kullanırsınız.To define the structure of an XML document and its element relationships, data types, and content constraints, you use a document type definition (DTD) or XML Schema definition language (XSD) schema. XML belgesi, W3C xml 1,0 önerisitarafından tanımlanan tüm sözdizimsel gereksinimleri karşılıyorsa iyi biçimlendirilmiş olarak değerlendirilir.An XML document is considered to be well formed if it meets all the syntactical requirements defined by the W3C XML 1.0 Recommendation. İyi biçimlendirilmişse ve ayrıca DTD veya şema tarafından tanımlanan kısıtlamalara uygun olduğunda geçerli kabul edilir.It's considered valid if it's well formed and also conforms to the constraints defined by its DTD or schema. (Bkz. W3C XML şeması Bölüm 1: yapılar ve W3C XML şeması Bölüm 2: veri türleri önerileri.) Bu nedenle, tüm geçerli XML belgeleri iyi biçimlendirilmiş olsa da, iyi biçimlendirilmiş XML belgelerinin hepsi geçerli değildir.(See the W3C XML Schema Part 1: Structures and the W3C XML Schema Part 2: Datatypes recommendations.) Therefore, although all valid XML documents are well formed, not all well-formed XML documents are valid.

Verileri bir DTD 'ye, satır içi XSD şemasına veya bir nesnede (önbellek) depolanan bir XSD şemasına göre doğrulayabilirsiniz XmlSchemaSet ; Bu senaryolar Create başvuru sayfasında açıklanmaktadır.You can validate the data against a DTD, an inline XSD Schema, or an XSD Schema stored in an XmlSchemaSet object (a cache); these scenarios are described on the Create reference page. XmlReader XML verileri azaltılmış (XDR) şema doğrulamasını desteklemez.XmlReader doesn't support XML-Data Reduced (XDR) schema validation.

XmlReaderSettingsÖrneği, varsa, örnek tarafından desteklenen doğrulama türünü belirtmek için aşağıdaki ayarları kullanın XmlReader .You use the following settings on the XmlReaderSettings class to specify what type of validation, if any, the XmlReader instance supports.

Bu XmlReaderSettings üyeyi kullanUse this XmlReaderSettings member Belirtmek içinTo specify
DtdProcessing özelliðiDtdProcessing property DTD işlemeye izin verilip verilmeyeceğini belirtir.Whether to allow DTD processing. Varsayılan değer DTD işlemeye izin vermedir.The default is to disallow DTD processing.
ValidationType özelliðiValidationType property Okuyucunun verileri doğrulaması gerekip gerekmediğini ve gerçekleştirilecek doğrulama türünü (DTD veya şema) belirtir.Whether the reader should validate data, and what type of validation to perform (DTD or schema). Varsayılan değer, veri doğrulaması değildir.The default is no data validation.
ValidationEventHandler olayValidationEventHandler event Doğrulama olayları hakkında bilgi almak için bir olay işleyicisi.An event handler for receiving information about validation events. Bir olay işleyicisi sağlanmazsa, XmlException ilk doğrulama hatası üzerinde bir oluşturulur.If an event handler is not provided, an XmlException is thrown on the first validation error.
ValidationFlags özelliðiValidationFlags property Listeleme üyeleri aracılığıyla ek doğrulama seçenekleri XmlSchemaValidationFlags :Additional validation options through the XmlSchemaValidationFlags enumeration members:

- AllowXmlAttributes-- xml:* Şema içinde tanımlanmadığında bile örnek BELGELERINDE XML özniteliklerine () izin verin.- AllowXmlAttributes-- Allow XML attributes (xml:*) in instance documents even when they're not defined in the schema. Öznitelikler, veri türlerine göre onaylanır.The attributes are validated based on their data type. XmlSchemaValidationFlagsBelirli senaryolarda kullanılacak ayarın başvuru sayfasına bakın.See the XmlSchemaValidationFlags reference page for the setting to use in specific scenarios. (Varsayılan olarak devre dışıdır.)(Disabled by default.)
- ProcessIdentityConstraints --Doğrulama sırasında işlem kimliği kısıtlamaları ( xs:ID , xs:IDREF , xs:key , xs:keyref , xs:unique ) ile karşılaşıldı.- ProcessIdentityConstraints --Process identity constraints (xs:ID, xs:IDREF, xs:key, xs:keyref, xs:unique) encountered during validation. (Varsayılan olarak etkindir.)(Enabled by default.)
- ProcessSchemaLocation --Veya özniteliği tarafından belirtilen şemaları xsi:schemaLocation işleyin xsi:noNamespaceSchemaLocation .- ProcessSchemaLocation --Process schemas specified by the xsi:schemaLocation or xsi:noNamespaceSchemaLocation attribute. (Varsayılan olarak etkindir.)(Enabled by default.)
- ProcessInlineSchema--Doğrulama sırasında satır içi XML şemalarını işleyin.- ProcessInlineSchema-- Process inline XML Schemas during validation. (Varsayılan olarak devre dışıdır.)(Disabled by default.)
- ReportValidationWarnings--Doğrulama uyarısı oluşursa olayları raporla.- ReportValidationWarnings--Report events if a validation warning occurs. Belirli bir öğeyi veya özniteliği doğrulamak için bir DTD veya XML şeması olmadığında, genellikle bir uyarı verilir.A warning is typically issued when there is no DTD or XML Schema to validate a particular element or attribute against. ValidationEventHandlerBildirim için kullanılır.The ValidationEventHandler is used for notification. (Varsayılan olarak devre dışıdır.)(Disabled by default.)
Schemas XmlSchemaSetDoğrulaması için kullanılacak.The XmlSchemaSet to use for validation.
XmlResolver özelliðiXmlResolver property XmlResolverDış kaynakları çözümlemek ve bunlara erişmek için.The XmlResolver for resolving and accessing external resources. Bu, DTD ve şemalar gibi dış varlıkları ve xs:include xs:import XML şemasında bulunan herhangi veya öğeleri içerebilir.This can include external entities such as DTD and schemas, and any xs:include or xs:import elements contained in the XML Schema. Belirtmezseniz, XmlResolver XmlReader XmlUrlResolver Kullanıcı kimlik bilgileri olmadan varsayılan bir kullanır.If you don't specify an XmlResolver, the XmlReader uses a default XmlUrlResolver with no user credentials.

Veri uyumluluğuData conformance

Yöntemi tarafından oluşturulan XML okuyucuları Create , varsayılan olarak aşağıdaki uyumluluk gereksinimlerini karşılar:XML readers that are created by the Create method meet the following compliance requirements by default:

  • Yeni satırlar ve öznitelik değeri W3C XML 1,0 önerisinegöre normalleştirilir.New lines and attribute value are normalized according to the W3C XML 1.0 Recommendation.

  • Tüm varlıklar otomatik olarak genişletilir.All entities are automatically expanded.

  • Belge türü tanımında belirtilen varsayılan öznitelikler, okuyucu doğrulanmadığında bile her zaman eklenir.Default attributes declared in the document type definition are always added even when the reader doesn't validate.

  • Doğru XML ad alanı URI 'sine eşlenmiş XML ön eki bildirimine izin veriliyor.Declaration of XML prefix mapped to the correct XML namespace URI is allowed.

  • Tek bir NotationType öznitelik bildiriminde ve NmTokens tek bir öznitelik bildiriminde bulunan Gösterim adları Enumeration farklıdır.The notation names in a single NotationType attribute declaration and NmTokens in a single Enumeration attribute declaration are distinct.

Etkinleştirmek istediğiniz XmlReaderSettings uygunluk denetimleri türünü belirtmek için bu özellikleri kullanın:Use these XmlReaderSettings properties to specify the type of conformance checks you want to enable:

Bu XmlReaderSettings özelliği kullanınUse this XmlReaderSettings property AmaçTo VarsayılanDefault
CheckCharacters özelliðiCheckCharacters property Şunları yapmak için denetimleri etkinleştirin veya devre dışı bırakın:Enable or disable checks for the following:

-Karakterler, W3C XML 1,0 önerisinin 2,2 karakter bölümü tarafından tanımlanan geçerli XML karakter aralığıdır.- Characters are within the range of legal XML characters, as defined by the 2.2 Characters section of the W3C XML 1.0 Recommendation.
-W3C XML 1,0 önerisinin 2,3 ortak sözdizimsel yapılar bölümünde tanımlanan tüm XML adları geçerlidir.- All XML names are valid, as defined by the 2.3 Common Syntactic Constructs section of the W3C XML 1.0 Recommendation.

Bu özellik true (varsayılan) olarak ayarlandığında, XmlException XML dosyası geçersiz karakterler veya geçersiz XML adları içeriyorsa (örneğin, bir öğe adı bir sayıyla başlıyorsa) bir özel durum oluşturulur.When this property is set to true (default), an XmlException exception is thrown if the XML file contains illegal characters or invalid XML names (for example, an element name starts with a number).
Karakter ve ad denetimi etkin.Character and name checking is enabled.

CheckCharacters false Karakter varlığı başvurularının karakter denetimini devre dışı bırakma ayarı.Setting CheckCharacters to false turns off character checking for character entity references. Okuyucu metin verilerini işlediğinde, bu ayardan bağımsız olarak her zaman XML adlarının geçerli olduğunu denetler.If the reader is processing text data, it always checks that XML names are valid, regardless of this setting. Note: XML 1,0 önerisi, bir DTD bulunduğunda belge düzeyinde uyumluluk gerektirir.Note: The XML 1.0 recommendation requires document-level conformance when a DTD is present. Bu nedenle, okuyucu destekleyecek şekilde yapılandırıldıysa ConformanceLevel.Fragment , ancak XML verileri bir belge türü tanımı (DTD) içeriyorsa, bir oluşturulur XmlException .Therefore, if the reader is configured to support ConformanceLevel.Fragment, but the XML data contains a document type definition (DTD), an XmlException is thrown.
ConformanceLevel özelliðiConformanceLevel property Zorlayacağı uyumluluk düzeyini seçin:Choose the level of conformance to enforce:

- Document.- Document. İyi biçimlendirilmiş BIR XML 1,0 belgesiiçin kurallara uyar.Conforms to the rules for a well-formed XML 1.0 document.
- Fragment.- Fragment. , Bir dış ayrıştırılmış varlıkolarak tüketilen iyi biçimlendirilmiş bir belge parçasının kurallarına uyar.Conforms to the rules for a well-formed document fragment that can be consumed as an external parsed entity.
- Auto.- Auto. Okuyucu tarafından karar verdiği düzeye uyar.Conforms to the level decided by the reader.

Veriler uyum içinde değilse, bir XmlException özel durum oluşturulur.If the data isn't in conformance, an XmlException exception is thrown.
Document

Geçerli düğüm, XML okuyucusu üzerinde şu anda konumlandırılmış olan XML düğümüdür.The current node is the XML node on which the XML reader is currently positioned. Tüm XmlReader Yöntemler bu düğümle ilgili işlemler gerçekleştirir ve tüm XmlReader Özellikler geçerli düğümün değerini yansıtır.All XmlReader methods perform operations in relation to this node, and all XmlReader properties reflect the value of the current node.

Aşağıdaki yöntemler düğümler arasında gezinmeyi ve verileri ayrıştırmayı kolaylaştırır.The following methods make it easy to navigate through nodes and parse data.

Bu XmlReaderSettings yöntemi kullanınUse this XmlReaderSettings method AmaçTo
Read İlk düğümü okuyun ve tek seferde bir düğüm akışı üzerinden ilerleyin.Read the first node, and advance through the stream one node at a time. Bu tür çağrılar genellikle bir döngü içinde gerçekleştirilir while .Such calls are typically performed inside a while loop.

NodeTypeGeçerli düğümün türünü (örneğin, öznitelik, açıklama, öğe vb.) almak için özelliğini kullanın.Use the NodeType property to get the type (for example, attribute, comment, element, and so on) of the current node.
Skip Geçerli düğümün alt öğelerini atlayın ve sonraki düğüme geçin.Skip the children of the current node and move to the next node.
MoveToContent ve MoveToContentAsyncMoveToContent and MoveToContentAsync İçerik dışı düğümleri atlayın ve sonraki içerik düğümüne veya dosyanın sonuna taşıyın.Skip non-content nodes and move to the next content node or to the end of the file.

İçerik olmayan düğümler,, ProcessingInstruction , DocumentType Comment ve içerir Whitespace SignificantWhitespace .Non-content nodes include ProcessingInstruction, DocumentType, Comment, Whitespace, and SignificantWhitespace.

İçerik düğümleri boşluk olmayan metin,,, CDATA ve içerir EntityReference EndEntity .Content nodes include non-white space text, CDATA, EntityReference , and EndEntity.
ReadSubtree Bir öğeyi ve tüm alt öğelerini okuyun ve ' a yeni bir XmlReader örnek kümesi döndürün ReadState.Initial .Read an element and all its children, and return a new XmlReader instance set to ReadState.Initial.

Bu yöntem, XML öğeleri etrafında sınır oluşturmak için yararlıdır; Örneğin, işlemek üzere verileri başka bir bileşene geçirmek isterseniz ve bu bileşenin ne kadarının erişebileceğini sınırlamak istiyorsanız.This method is useful for creating boundaries around XML elements; for example, if you want to pass data to another component for processing and you want to limit how much of your data the component can access.

Tek seferde bir XmlReader.Read düğüm ve her bir düğümün türünü gösteren bir metin akışı arasında gezinerek bir örnek için başvuru sayfasına bakın.See the XmlReader.Read reference page for an example of navigating through a text stream one node at a time and displaying the type of each node.

Aşağıdaki bölümlerde öğeler, öznitelikler ve yazılı veriler gibi belirli veri türlerini nasıl okuyabileceğiniz açıklanır.The following sections describe how you can read specific types of data, such as elements, attributes, and typed data.

XML öğelerini okumaReading XML elements

Aşağıdaki tabloda, XmlReader sınıfının öğeleri işlemek için sağladığı Yöntemler ve özellikler listelenmiştir.The following table lists the methods and properties that the XmlReader class provides for processing elements. XmlReaderBir öğesine yerleştirildikten sonra, gibi düğüm özellikleri Name öğe değerlerini yansıtır.After the XmlReader is positioned on an element, the node properties, such as Name, reflect the element values. Aşağıda açıklanan üyelere ek olarak, sınıfının genel yöntemleri ve özellikleri XmlReader öğeleri işlemek için de kullanılabilir.In addition to the members described below, any of the general methods and properties of the XmlReader class can also be used to process elements. Örneğin, ReadInnerXml bir öğenin içeriğini okumak için yöntemini kullanabilirsiniz.For example, you can use the ReadInnerXml method to read the contents of an element.

Not

Başlangıç etiketleri, bitiş etiketleri ve boş öğe etiketlerinin tanımları için W3C XML 1,0 önerisinin 3,1 bölümüne bakın.See section 3.1 of the W3C XML 1.0 Recommendation for definitions of start tags, end tags, and empty element tags.

Bu XmlReader üyeyi kullanUse this XmlReader member AmaçTo
IsStartElement yöntemiIsStartElement method Geçerli düğümün başlangıç etiketi mi yoksa boş bir öğe etiketi mi olduğunu denetleyin.Check if the current node is a start tag or an empty element tag.
ReadStartElement yöntemiReadStartElement method Geçerli düğümün bir öğe olup olmadığını kontrol edin ve okuyucuyu sonraki düğüme ilerletin (çağrıları IsStartElement izler Read ).Check that the current node is an element and advance the reader to the next node (calls IsStartElement followed by Read).
ReadEndElement yöntemiReadEndElement method Geçerli düğümün bir bitiş etiketi olup olmadığını denetleyin ve okuyucuyu sonraki düğüme ilerletin.Check that the current node is an end tag and advance the reader to the next node.
ReadElementString yöntemiReadElementString method Salt metin bir öğe okur.Read a text-only element.
ReadToDescendant yöntemiReadToDescendant method XML okuyucuyu, belirtilen ada sahip bir sonraki alt öğe (alt) öğesine ilerletin.Advance the XML reader to the next descendant (child) element that has the specified name.
ReadToNextSibling yöntemiReadToNextSibling method XML okuyucuyu, belirtilen ada sahip bir sonraki eşdüzey öğeye ilerletin.Advance the XML reader to the next sibling element that has the specified name.
IsEmptyElement özelliðiIsEmptyElement property Geçerli öğenin bir End öğesi etiketine sahip olup olmadığını denetleyin.Check if the current element has an end element tag. Örneğin:For example:

- <item num="123"/> ( IsEmptyElement true .)- <item num="123"/> (IsEmptyElement is true.)
- <item num="123"> </item> ( IsEmptyElement false öğesinin içeriği boş olsa da).- <item num="123"> </item> (IsEmptyElement is false, although the element's content is empty.)

Öğelerin metin içeriğini okumayla ilgili bir örnek için, bkz ReadString . yöntemi.For an example of reading the text content of elements, see the ReadString method. Aşağıdaki örnek, bir döngüsü kullanarak öğeleri işler while .The following example processes elements by using a while loop.

while (reader.Read()) {
  if (reader.IsStartElement()) {
    if (reader.IsEmptyElement)
                {
                    Console.WriteLine("<{0}/>", reader.Name);
                }
                else {
      Console.Write("<{0}> ", reader.Name);
      reader.Read(); // Read the start tag.
      if (reader.IsStartElement())  // Handle nested elements.
        Console.Write("\r\n<{0}>", reader.Name);
      Console.WriteLine(reader.ReadString());  //Read the text content of the element.
    }
  }
}
While reader.Read()
  If reader.IsStartElement() Then
    If reader.IsEmptyElement Then
      Console.WriteLine("<{0}/>", reader.Name)
    Else
      Console.Write("<{0}> ", reader.Name)
      reader.Read() ' Read the start tag.
      If reader.IsStartElement() Then ' Handle nested elements.
        Console.Write(vbCr + vbLf + "<{0}>", reader.Name)
      End If
      Console.WriteLine(reader.ReadString()) 'Read the text content of the element.
    End If
  End If
End While

XML özniteliklerini okumaReading XML attributes

XML öznitelikleri en yaygın olarak öğelerinde bulunur, ancak XML bildiriminde ve belge türü düğümlerinde da bunlara izin verilir.XML attributes are most commonly found on elements, but they're also allowed on XML declaration and document type nodes.

Öğesi bir öğe düğümüne konumlandırıldığında, MoveToAttribute yöntemi, öğesinin öznitelik listesinden gitmenizi sağlar.When positioned on an element node, the MoveToAttribute method lets you go through the attribute list of the element. Çağrıldıktan sonra, MoveToAttribute Name NamespaceURI ve özniteliğinin ait olduğu öğenin özelliklerine değil,,, ve gibi düğüm özellikleri, Prefix Bu özniteliğin özelliklerini yansıtır.Note that after MoveToAttribute has been called, node properties such as Name, NamespaceURI, and Prefix reflect the properties of that attribute, not the properties of the element the attribute belongs to.

XmlReaderSınıfı, öğeleri üzerinde öznitelikleri okumak ve işlemek için bu yöntemleri ve özellikleri sağlar.The XmlReader class provides these methods and properties to read and process attributes on elements.

Bu XmlReader üyeyi kullanUse this XmlReader member AmaçTo
HasAttributes özelliðiHasAttributes property Geçerli düğümün herhangi bir özniteliğe sahip olup olmadığını denetleyin.Check whether the current node has any attributes.
AttributeCount özelliðiAttributeCount property Geçerli öğedeki özniteliklerin sayısını al.Get the number of attributes on the current element.
MoveToFirstAttribute yöntemiMoveToFirstAttribute method Bir öğedeki ilk özniteliğe gitme.Move to the first attribute in an element.
MoveToNextAttribute yöntemiMoveToNextAttribute method Bir öğedeki sonraki özniteliğe gitme.Move to the next attribute in an element.
MoveToAttribute yöntemiMoveToAttribute method Belirtilen bir özniteliğe taşı.Move to a specified attribute.
GetAttribute Yöntem veya Item[] ÖzellikGetAttribute method or Item[] property Belirtilen bir özniteliğin değerini alır.Get the value of a specified attribute.
IsDefault özelliðiIsDefault property Geçerli düğümün DTD veya şemada tanımlanan varsayılan değerden oluşturulan bir öznitelik olup olmadığını kontrol edin.Check whether the current node is an attribute that was generated from the default value defined in the DTD or schema.
MoveToElement yöntemiMoveToElement method Geçerli özniteliğe sahip olan öğeye taşıyın.Move to the element that owns the current attribute. Öznitelikleri arasında gezindikten sonra bir öğeye dönmek için bu yöntemi kullanın.Use this method to return to an element after navigating through its attributes.
ReadAttributeValue yöntemiReadAttributeValue method Öznitelik değerini bir veya daha fazla Text , EntityReference veya düğümüne ayrıştırın EndEntity .Parse the attribute value into one or more Text, EntityReference, or EndEntity nodes.

Genel XmlReader yöntemlerin ve özelliklerden herhangi biri, öznitelikleri işlemek için de kullanılabilir.Any of the general XmlReader methods and properties can also be used to process attributes. Örneğin, XmlReader bir özniteliğe yerleştirildikten sonra Name ve Value özellikleri özniteliğin değerlerini yansıtır.For example, after the XmlReader is positioned on an attribute, the Name and Value properties reflect the values of the attribute. Özniteliğin değerini almak için herhangi bir içerik yönteminden birini de kullanabilirsiniz Read .You can also use any of the content Read methods to get the value of the attribute.

Bu örnek, AttributeCount bir öğesindeki tüm özniteliklerde gezinmek için özelliğini kullanır.This example uses the AttributeCount property to navigate through all the attributes on an element.

// Display all attributes.
if (reader.HasAttributes) {
  Console.WriteLine("Attributes of <" + reader.Name + ">");
  for (int i = 0; i < reader.AttributeCount; i++) {
    Console.WriteLine("  {0}", reader[i]);
  }
  // Move the reader back to the element node.
  reader.MoveToElement();
}
' Display all attributes.
If reader.HasAttributes Then
  Console.WriteLine("Attributes of <" + reader.Name + ">")
  Dim i As Integer
  For i = 0 To (reader.AttributeCount - 1)
    Console.WriteLine("  {0}", reader(i))
  Next i
  ' Move the reader back to the element node.
  reader.MoveToElement() 
End If

Bu örnek, MoveToNextAttribute while öznitelikleri içinde gezinmek için bir döngüsünde yöntemini kullanır.This example uses the MoveToNextAttribute method in a while loop to navigate through the attributes.

if (reader.HasAttributes) {
  Console.WriteLine("Attributes of <" + reader.Name + ">");
  while (reader.MoveToNextAttribute()) {
    Console.WriteLine(" {0}={1}", reader.Name, reader.Value);
  }
  // Move the reader back to the element node.
  reader.MoveToElement();
}
If reader.HasAttributes Then
  Console.WriteLine("Attributes of <" + reader.Name + ">")
  While reader.MoveToNextAttribute()
    Console.WriteLine(" {0}={1}", reader.Name, reader.Value)
  End While
  ' Move the reader back to the element node.
  reader.MoveToElement()
End If

XML bildirim düğümlerinde öznitelikleri okumaReading attributes on XML declaration nodes

XML okuyucusu bir XML bildirim düğümüne konumlandırıldığında, Value Özelliği sürüm, tek başına ve kodlama bilgilerini tek bir dize olarak döndürür.When the XML reader is positioned on an XML declaration node, the Value property returns the version, standalone, and encoding information as a single string. XmlReaderCreateyöntemi, sınıfı ve sınıfı tarafından oluşturulan nesneler, XmlTextReader XmlValidatingReader Sürüm, tek başına ve kodlama öğelerini öznitelik olarak kullanıma sunar.XmlReader objects created by the Create method, the XmlTextReader class, and the XmlValidatingReader class expose the version, standalone, and encoding items as attributes.

Belge türü düğümlerinde öznitelikleri okumaReading attributes on document type nodes

XML okuyucusu bir belge türü düğümünde konumlandırıldığında, GetAttribute yöntemi ve Item[] ÖZELLIĞI, SISTEM ve genel değişmez değerler için değerleri döndürmek üzere kullanılabilir.When the XML reader is positioned on a document type node, the GetAttribute method and Item[] property can be used to return the values for the SYSTEM and PUBLIC literals. Örneğin, çağırma reader.GetAttribute("PUBLIC") Genel değeri döndürür.For example, calling reader.GetAttribute("PUBLIC") returns the PUBLIC value.

İşlem yönergesi düğümlerinde öznitelikleri okumaReading attributes on processing instruction nodes

XmlReaderBir işleme yönergesi düğümünde konumlandırıldığında, Value özelliği tüm metin içeriğini döndürür.When the XmlReader is positioned on a processing instruction node, the Value property returns the entire text content. İşleme yönergesi düğümündeki öğeler öznitelik olarak değerlendirilmez.Items in the processing instruction node aren't treated as attributes. GetAttributeVeya MoveToAttribute yöntemiyle okunamaz.They can't be read with the GetAttribute or MoveToAttribute method.

XML içeriğini okumaReading XML content

XMLReader sınıfı, bir XML dosyasından içerik okuyan ve içeriği dize değerleri olarak döndüren aşağıdaki üyeleri içerir.The XMLReader class includes the following members that read content from an XML file and return the content as string values. (CLR türlerini döndürmek için bir sonraki bölümebakın.)(To return CLR types, see the next section.)

Bu XmlReader üyeyi kullanUse this XmlReader member AmaçTo
Value özelliðiValue property Geçerli düğümün metin içeriğini al.Get the text content of the current node. Döndürülen değer düğüm türüne bağlıdır; Value Ayrıntılar için başvuru sayfasına bakın.The value returned depends on the node type; see the Value reference page for details.
ReadString yöntemiReadString method Bir öğe veya metin düğümünün içeriğini bir dize olarak alın.Get the content of an element or text node as a string. Bu yöntem, işleme yönergelerini ve açıklamalarını sonlandırır.This method stops on processing instructions and comments.

Bu yöntemin belirli düğüm türlerini nasıl işleyeceği hakkında daha fazla bilgi için ReadString başvuru sayfasına bakın.For details on how this method handles specific node types, see the ReadString reference page.
ReadInnerXml ve ReadInnerXmlAsync yöntemleriReadInnerXml and ReadInnerXmlAsync methods Biçimlendirme dahil, ancak başlangıç ve bitiş etiketleri hariç olmak üzere geçerli düğümün tüm içeriğini al.Get all the content of the current node, including the markup, but excluding start and end tags. Örneğin, için:For example, for:

<node>this<child id="123"/></node>

ReadInnerXml döndürdüğüReadInnerXml returns:

this<child id="123"/>
ReadOuterXml ve ReadOuterXmlAsync yöntemleriReadOuterXml and ReadOuterXmlAsync methods Biçimlendirme ve başlangıç/bitiş etiketleri dahil olmak üzere geçerli düğümün ve alt öğelerinin tüm içeriğini alın.Get all the content of the current node and its children, including markup and start/end tags. Örneğin, için:For example, for:

<node>this<child id="123"/></node>

ReadOuterXml döndürdüğüReadOuterXml returns:

<node>this<child id="123"/></node>

CLR türlerine dönüştürmeConverting to CLR types

XmlReaderXML verilerini okumak ve değerleri dizeler yerine ortak dil çalışma zamanı (CLR) türleri olarak döndürmek için sınıfının üyelerini (aşağıdaki tabloda listelenmiştir) kullanabilirsiniz.You can use the members of the XmlReader class (listed in the following table) to read XML data and return values as common language runtime (CLR) types instead of strings. Bu Üyeler, dize değerlerini el ile ayrıştırmanıza veya dönüştürmeye gerek kalmadan, kodlama göreviniz için en uygun gösterimdeki değerleri almanızı sağlar.These members enable you to get values in the representation that is most appropriate for your coding task without having to manually parse or convert string values.

  • ReadElementContentAs yöntemleri yalnızca öğe düğüm türlerinde çağrılabilir.The ReadElementContentAs methods can only be called on element node types. Bu yöntemler alt öğeler veya karışık içerik içeren öğelerde kullanılamaz.These methods cannot be used on elements that contain child elements or mixed content. Çağrıldığında, XmlReader nesne Başlangıç etiketini okur, öğe içeriğini okur ve ardından bitiş öğesi etiketini geçti.When called, the XmlReader object reads the start tag, reads the element content, and then moves past the end element tag. İşlem yönergeleri ve açıklamalar yoksayılır ve varlıklar genişletilir.Processing instructions and comments are ignored and entities are expanded.

  • ReadContentAs yöntemleri, geçerli okuyucu konumundaki metin içeriğini okur ve XML verilerinde ilişkili herhangi bir şema veya veri türü bilgisi yoksa, metin içeriğini istenen dönüş türüne dönüştürün.The ReadContentAs methods read the text content at the current reader position, and if the XML data doesn't have any schema or data type information associated with it, convert the text content to the requested return type. Metin, boşluk, önemli boşluk ve CDATA bölümleri birleştirilir.Text, white space, significant white space and CDATA sections are concatenated. Açıklamalar ve işleme talimatları atlanır ve varlık başvuruları otomatik olarak çözümlenir.Comments and processing instructions are skipped, and entity references are automatically resolved.

XmlReaderSınıfı, W3C XML şeması Bölüm 2: veri türleri önerisi tarafından tanımlanan kuralları kullanır.The XmlReader class uses the rules defined by the W3C XML Schema Part 2: Datatypes recommendation.

Bu XmlReader yöntemi kullanınUse this XmlReader method Bu CLR türünü döndürmek içinTo return this CLR type
ReadContentAsBoolean ve ReadElementContentAsBooleanReadContentAsBoolean and ReadElementContentAsBoolean Boolean
ReadContentAsDateTime ve ReadElementContentAsDateTimeReadContentAsDateTime and ReadElementContentAsDateTime DateTime
ReadContentAsDouble ve ReadElementContentAsDoubleReadContentAsDouble and ReadElementContentAsDouble Double
ReadContentAsLong ve ReadElementContentAsLongReadContentAsLong and ReadElementContentAsLong Int64
ReadContentAsInt ve ReadElementContentAsIntReadContentAsInt and ReadElementContentAsInt Int32
ReadContentAsString ve ReadElementContentAsStringReadContentAsString and ReadElementContentAsString String
ReadContentAs ve ReadElementContentAsReadContentAs and ReadElementContentAs Parametresiyle belirttiğiniz tür returnTypeThe type you specify with the returnType parameter
ReadContentAsObject ve ReadElementContentAsObjectReadContentAsObject and ReadElementContentAsObject Özelliği tarafından belirtilen en uygun tür XmlReader.ValueType .The most appropriate type, as specified by the XmlReader.ValueType property. Bilgi eşlemek için System.Xml sınıflarında bkz. tür desteği .See Type Support in the System.Xml Classes for mapping information.

Bir öğe biçimi nedeniyle kolayca CLR türüne dönüştürülemiyorsa, başarılı bir dönüştürme sağlamak için bir şema eşlemesi kullanabilirsiniz.If an element can't easily be converted to a CLR type because of its format, you can use a schema mapping to ensure a successful conversion. Aşağıdaki örnek, öğesini türüne dönüştürmek için bir. xsd dosyası kullanır hire-date xs:date ve sonra ReadElementContentAsDateTime nesneyi bir nesne olarak döndürmek için yöntemini kullanır DateTime .The following example uses an .xsd file to convert the hire-date element to the xs:date type, and then uses the ReadElementContentAsDateTime method to return the element as a DateTime object.

Giriş (hireDate.xml):Input (hireDate.xml):

<employee xmlns="urn:empl-hire">
    <ID>12365</ID>
    <hire-date>2003-01-08</hire-date>
    <title>Accountant</title>
</employee>

Şema (hireDate. xsd):Schema (hireDate.xsd):

<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:empl-hire" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="employee">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ID" type="xs:unsignedShort" />
        <xs:element name="hire-date" type="xs:date" />
        <xs:element name="title" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

KodudurCode:

// Create a validating XmlReader object. The schema
// provides the necessary type information.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add("urn:empl-hire", "hireDate.xsd");
using (XmlReader reader = XmlReader.Create("hireDate.xml", settings)) {

  // Move to the hire-date element.
  reader.MoveToContent();
  reader.ReadToDescendant("hire-date");

  // Return the hire-date as a DateTime object.
  DateTime hireDate = reader.ReadElementContentAsDateTime();
  Console.WriteLine("Six Month Review Date: {0}", hireDate.AddMonths(6));
}
' Create a validating XmlReader object. The schema 
' provides the necessary type information.
Dim settings As XmlReaderSettings = New XmlReaderSettings()
settings.ValidationType = ValidationType.Schema
settings.Schemas.Add("urn:empl-hire", "hireDate.xsd")
Using reader As XmlReader = XmlReader.Create("hireDate.xml", settings) 
  ' Move to the hire-date element.
  reader.MoveToContent()
  reader.ReadToDescendant("hire-date")

  ' Return the hire-date as a DateTime object.
  Dim hireDate As DateTime = reader.ReadElementContentAsDateTime()
  Console.WriteLine("Six Month Review Date: {0}", hireDate.AddMonths(6))
End Using

ÇıktılarınOutput:

Six Month Review Date:  7/8/2003 12:00:00 AM  

Zaman uyumsuz programlamaAsynchronous programming

Yöntemlerin çoğu, XmlReader yöntem adlarının sonunda "Async" olan zaman uyumsuz karşılıklara sahiptir.Most of the XmlReader methods have asynchronous counterparts that have "Async" at the end of their method names. Örneğin, öğesinin zaman uyumsuz eşdeğeri ReadContentAsObject ReadContentAsObjectAsync .For example, the asynchronous equivalent of ReadContentAsObject is ReadContentAsObjectAsync.

Aşağıdaki yöntemler zaman uyumsuz yöntem çağrıları ile birlikte kullanılabilir:The following methods can be used with asynchronous method calls:

Aşağıdaki bölümlerde, zaman uyumsuz karşılıkları olmayan yöntemler için zaman uyumsuz kullanım açıklanır.The following sections describe asynchronous usage for methods that don't have asynchronous counterparts.

ReadStartElement yöntemiReadStartElement method

public static async Task ReadStartElementAsync(this XmlReader reader, string localname, string ns)
{
    if (await reader.MoveToContentAsync() != XmlNodeType.Element)
    {
        throw new InvalidOperationException(reader.NodeType.ToString() + " is an invalid XmlNodeType");
    }
    if ((reader.LocalName == localname) && (reader.NamespaceURI == ns))
    {
        await reader.ReadAsync();
    }
    else
    {
        throw new InvalidOperationException("localName or namespace doesn’t match");
    }
}
<Extension()>
Public Async Function ReadStartElementAsync(reader As XmlReader, localname As String, ns As String) As Task
    If (Await reader.MoveToContentAsync() <> XmlNodeType.Element) Then
        Throw New InvalidOperationException(reader.NodeType.ToString() + " is an invalid XmlNodeType")
    End If

    If ((reader.LocalName = localname) And (reader.NamespaceURI = ns)) Then
        Await reader.ReadAsync()
    Else
        Throw New InvalidOperationException("localName or namespace doesn’t match")
    End If
End Function

ReadEndElement yöntemiReadEndElement method

public static async Task ReadEndElementAsync(this XmlReader reader)
{
    if (await reader.MoveToContentAsync() != XmlNodeType.EndElement)
    {
        throw new InvalidOperationException();
    }
    await reader.ReadAsync();
}
<Extension()>
Public Async Function ReadEndElementAsync(reader As XmlReader) As task
    If (Await reader.MoveToContentAsync() <> XmlNodeType.EndElement) Then
        Throw New InvalidOperationException()
    End If
    Await reader.ReadAsync()
End Function

Readtonexteşdüzey yöntemiReadToNextSibling method

public static async Task<bool> ReadToNextSiblingAsync(this XmlReader reader, string localName, string namespaceURI)
{
    if (localName == null || localName.Length == 0)
    {
        throw new ArgumentException("localName is empty or null");
    }
    if (namespaceURI == null)
    {
        throw new ArgumentNullException("namespaceURI");
    }

    // atomize local name and namespace
    localName = reader.NameTable.Add(localName);
    namespaceURI = reader.NameTable.Add(namespaceURI);

    // find the next sibling
    XmlNodeType nt;
    do
    {
        await reader.SkipAsync();
        if (reader.ReadState != ReadState.Interactive)
            break;
        nt = reader.NodeType;
        if (nt == XmlNodeType.Element &&
             ((object)localName == (object)reader.LocalName) &&
             ((object)namespaceURI ==(object)reader.NamespaceURI))
        {
            return true;
        }
    } while (nt != XmlNodeType.EndElement && !reader.EOF);
    
    return false;
}
<Extension()>
Public Async Function ReadToNextSiblingAsync(reader As XmlReader, localName As String, namespaceURI As String) As Task(Of Boolean)
    If (localName = Nothing Or localName.Length = 0) Then
        Throw New ArgumentException("localName is empty or null")
    End If

    If (namespaceURI = Nothing) Then
        Throw New ArgumentNullException("namespaceURI")
    End If

    ' atomize local name and namespace
    localName = reader.NameTable.Add(localName)
    namespaceURI = reader.NameTable.Add(namespaceURI)

    ' find the next sibling
    Dim nt As XmlNodeType
    Do

        Await reader.SkipAsync()
        If (reader.ReadState <> ReadState.Interactive) Then
            Exit Do
        End If
        nt = reader.NodeType
        If ((nt = XmlNodeType.Element) And
           ((CObj(localName) = CObj(reader.LocalName))) And
           (CObj(namespaceURI) = CObj(reader.NamespaceURI))) Then
            Return True
        End If
    Loop While (nt <> XmlNodeType.EndElement And (Not reader.EOF))

    Return False

End Function

Readtoaşağıdaki yöntemiReadToFollowing method

public static async Task<bool> ReadToFollowingAsync(this XmlReader reader, string localName, string namespaceURI)
{
    if (localName == null || localName.Length == 0)
    {
        throw new ArgumentException("localName is empty or null");
    }
    if (namespaceURI == null)
    {
        throw new ArgumentNullException("namespaceURI");
    }

    // atomize local name and namespace
    localName = reader.NameTable.Add(localName);
    namespaceURI = reader.NameTable.Add(namespaceURI);

    // find element with that name
    while (await reader.ReadAsync())
    {
        if (reader.NodeType == XmlNodeType.Element && ((object)localName == (object)reader.LocalName) && ((object)namespaceURI == (object)reader.NamespaceURI))
        {
            return true;
        }
    }
    return false;
}
<Extension()>
Public Async Function ReadToFollowingAsync(reader As XmlReader, localName As String, namespaceURI As String) As Task(Of Boolean)
    If (localName = Nothing Or localName.Length = 0) Then
        Throw New ArgumentException("localName is empty or null")
    End If

    If (namespaceURI = Nothing) Then
        Throw New ArgumentNullException("namespaceURI")
    End If

    ' atomize local name and namespace
    localName = reader.NameTable.Add(localName)
    namespaceURI = reader.NameTable.Add(namespaceURI)

    ' find element with that name
    While (Await reader.ReadAsync())
        If ((reader.NodeType = XmlNodeType.Element) And
           (CObj(localName) = CObj(reader.LocalName)) And
           (CObj(namespaceURI) = CObj(reader.NamespaceURI))) Then
            Return True
        End If
    End While

    Return False
End Function

ReadToDescendant yöntemiReadToDescendant method

public static async Task<bool> ReadToDescendantAsync(this XmlReader reader, string localName, string namespaceURI)
{
    if (localName == null || localName.Length == 0)
    {
        throw new ArgumentException("localName is empty or null");
    }
    if (namespaceURI == null)
    {
        throw new ArgumentNullException("namespaceURI");
    }
    // save the element or root depth
    int parentDepth = reader.Depth;
    if (reader.NodeType != XmlNodeType.Element)
    {
        // adjust the depth if we are on root node
        if (reader.ReadState == ReadState.Initial)
        {
            parentDepth--;
        }
        else
        {
            return false;
        }
    }
    else if (reader.IsEmptyElement)
    {
        return false;
    }

    // atomize local name and namespace
    localName = reader.NameTable.Add(localName);
    namespaceURI = reader.NameTable.Add(namespaceURI);

    // find the descendant
    while (await reader.ReadAsync() && reader.Depth > parentDepth)
    {
        if (reader.NodeType == XmlNodeType.Element && ((object)localName == (object)reader.LocalName) && ((object)namespaceURI == (object)reader.NamespaceURI))
        {
            return true;
        }
    }
    return false;
}
<Extension()>
Public Async Function ReadToDescendantAsync(reader As XmlReader, localName As String, namespaceURI As String) As Task(Of Boolean)
    If (localName = Nothing Or localName.Length = 0) Then
        Throw New ArgumentException("localName is empty or null")
    End If

    If (namespaceURI = Nothing) Then
        Throw New ArgumentNullException("namespaceURI")
    End If

    ' save the element or root depth
    Dim parentDepth As Integer = reader.Depth
    If (reader.NodeType <> XmlNodeType.Element) Then
        ' adjust the depth if we are on root node
        If (reader.ReadState = ReadState.Initial) Then
            parentDepth -= 1
        Else
            Return False
        End If
    ElseIf (reader.IsEmptyElement) Then
        Return False
    End If
    ' atomize local name and namespace
    localName = reader.NameTable.Add(localName)
    namespaceURI = reader.NameTable.Add(namespaceURI)

    ' find the descendant
    While (Await reader.ReadAsync() And reader.Depth > parentDepth)
        If (reader.NodeType = XmlNodeType.Element And
           (CObj(localName) = CObj(reader.LocalName)) And
           (CObj(namespaceURI) = CObj(reader.NamespaceURI))) Then
            Return True
        End If
    End While

    Return False
End Function

Güvenlik konularıSecurity considerations

Sınıfıyla çalışırken aşağıdakileri göz önünde bulundurun XmlReader :Consider the following when working with the XmlReader class:

  • ' Dan oluşturulan özel durumlar, XmlReader uygulamanıza kabarcıklanmasını istemediğiniz yol bilgilerini açığa çıkarabilir.Exceptions thrown from the XmlReader can disclose path information that you might not want bubbled up to your app. Uygulamanız özel durumları yakalamalı ve uygun şekilde işlemelidir.Your app must catch exceptions and process them appropriately.

  • Hizmet reddi sorunları veya güvenilmeyen kaynaklarla uğraşıyorsanız DTD işlemesini etkinleştirmeyin.Do not enable DTD processing if you're concerned about denial of service issues or if you're dealing with untrusted sources. DTD işleme XmlReader , yöntemi tarafından oluşturulan nesneler için varsayılan olarak devre dışıdır Create .DTD processing is disabled by default for XmlReader objects created by the Create method.

    DTD işlemesinin etkin olması durumunda, XmlSecureResolver erişebileceği kaynakları kısıtlamak için kullanabilirsiniz XmlReader .If you have DTD processing enabled, you can use the XmlSecureResolver to restrict the resources that the XmlReader can access. Ayrıca, uygulamanızı XML işlemenin bellek ve sınırlandırmasını sağlayacak şekilde tasarlayabilirsiniz.You can also design your app so that the XML processing is memory and time constrained. Örneğin, ASP.NET uygulamanızda zaman aşımı sınırlarını yapılandırabilirsiniz.For example, you can configure time-out limits in your ASP.NET app.

  • XML verileri, bir şema dosyası gibi dış kaynaklara başvuruları içerebilir.XML data can include references to external resources such as a schema file. Varsayılan olarak, dış kaynaklar XmlUrlResolver Kullanıcı kimlik bilgileri olmayan bir nesne kullanılarak çözümlenir.By default, external resources are resolved by using an XmlUrlResolver object with no user credentials. Aşağıdakilerden birini yaparak bunu daha fazla koruyabilirsiniz:You can secure this further by doing one of the following:

  • ProcessInlineSchema ProcessSchemaLocation Bir nesnenin ve doğrulama bayrakları XmlReaderSettings Varsayılan olarak ayarlı değildir.The ProcessInlineSchema and ProcessSchemaLocation validation flags of an XmlReaderSettings object aren't set by default. Bu, XmlReader Güvenilmeyen bir kaynaktan XML verilerini işlerken şema tabanlı saldırılara karşı korumaya yardımcı olur.This helps to protect the XmlReader against schema-based attacks when it is processing XML data from an untrusted source. Bu bayraklar ayarlandığında XmlResolver XmlReaderSettings nesnesi, içindeki örnek belgesinde karşılaşılan şema konumlarını çözümlemek için kullanılır XmlReader .When these flags are set, the XmlResolver of the XmlReaderSettings object is used to resolve schema locations encountered in the instance document in the XmlReader. XmlResolverÖzelliği olarak ayarlandıysa null , ProcessInlineSchema ve ProcessSchemaLocation doğrulama bayrakları ayarlanmış olsa bile şema konumları çözümlenmez.If the XmlResolver property is set to null, schema locations aren't resolved even if the ProcessInlineSchema and ProcessSchemaLocation validation flags are set.

    Doğrulama sırasında eklenen şemalar yeni türler ekleyin ve Doğrulanmakta olan belgenin doğrulama sonucunu değiştirebilir.Schemas added during validation add new types and can change the validation outcome of the document being validated. Sonuç olarak, dış şemalar yalnızca güvenilir kaynaklardan çözümlenmelidir.As a result, external schemas should only be resolved from trusted sources.

    ProcessIdentityConstraintsYüksek kullanılabilirlik senaryolarında büyük XML belgelerinin, belgenin büyük bir bölümü üzerinde kimlik kısıtlamalarına sahip bir şemaya karşı, güvenilmeyen bir şekilde doğrulanırken bayrağın devre dışı bırakılmasını öneririz.We recommend disabling the ProcessIdentityConstraints flag when validating untrusted, large XML documents in high availability scenarios against a schema that has identity constraints over a large part of the document. Bu bayrak varsayılan olarak etkindir.This flag is enabled by default.

  • XML verileri çok sayıda öznitelik, ad alanı bildirimi, iç içe geçmiş öğeler ve daha fazlasını içerebilir. bu sayede işlemek için önemli miktarda süre gerekir.XML data can contain a large number of attributes, namespace declarations, nested elements and so on that require a substantial amount of time to process. Öğesine gönderilen girişin boyutunu sınırlamak için şunları XmlReader yapabilirsiniz:To limit the size of the input that is sent to the XmlReader, you can:

  • ReadValueChunkYöntemi, büyük veri akışlarını işlemek için kullanılabilir.The ReadValueChunk method can be used to handle large streams of data. Bu yöntem, tüm değer için tek bir dize ayırmak yerine, aynı anda küçük sayıda karakteri okur.This method reads a small number of characters at a time instead of allocating a single string for the whole value.

  • Çok sayıda benzersiz yerel ad, ad alanı veya ön ek içeren bir XML belgesi okurken bir sorun oluşabilir.When reading an XML document with a large number of unique local names, namespaces, or prefixes, a problem can occur. Öğesinden türetilen bir sınıf kullanıyorsanız XmlReader ve LocalName Prefix NamespaceURI her öğe için,, veya özelliğini çağırdığınızda döndürülen dize bir öğesine eklenir NameTable .If you are using a class that derives from XmlReader, and you call the LocalName, Prefix, or NamespaceURI property for each item, the returned string is added to a NameTable. Tarafından tutulan koleksiyon NameTable hiçbir şekilde hiçbir şekilde azaldıkça dize tutamaçları için sanal bellek sızıntısı oluşturur.The collection held by the NameTable never decreases in size, creating a virtual memory leak of the string handles. Bunun için bir hafifletme, sınıftan türemektir NameTable ve en büyük boyut kotasını zorlayayöneliktir.One mitigation for this is to derive from the NameTable class and enforce a maximum size quota. (Bir veya ' ın kullanımını önlemenin bir yolu yoktur NameTable NameTable ).(There is no way to prevent the use of a NameTable, or to switch the NameTable when it is full). Başka bir hafifletme, belirtilen özellikleri kullanmaktan kaçınmaktır; bunun yerine MoveToAttribute yöntemi IsStartElement mümkün olduğunda kullanın; Bu yöntemler dizeleri döndürmez ve bu nedenle koleksiyonun üzerine gelme sorununu önler NameTable .Another mitigation is to avoid using the properties mentioned and instead use the MoveToAttribute method with the IsStartElement method where possible; those methods don't return strings and thus avoid the problem of overfilling the NameTable collection.

  • XmlReaderSettings nesneler, Kullanıcı kimlik bilgileri gibi gizli bilgiler içerebilir.XmlReaderSettings objects can contain sensitive information such as user credentials. Güvenilmeyen bir bileşen, XmlReaderSettings verileri okumak üzere nesne oluşturmak için nesnesini ve Kullanıcı kimlik bilgilerini kullanabilir XmlReader .An untrusted component could use the XmlReaderSettings object and its user credentials to create XmlReader objects to read data. Nesneleri önbelleğe alırken XmlReaderSettings veya nesneyi bir bileşenden diğerine geçirirken dikkatli olun XmlReaderSettings .Be careful when caching XmlReaderSettings objects, or when passing the XmlReaderSettings object from one component to another.

  • NameTable XmlNamespaceManager Güvenilmeyen bir kaynaktan,, ve nesneler gibi destekleyici bileşenleri kabul etmez XmlResolver .Do not accept supporting components, such as NameTable, XmlNamespaceManager, and XmlResolver objects, from an untrusted source.

Oluşturucular

XmlReader()

XmlReader sınıfının yeni bir örneğini başlatır.Initializes a new instance of the XmlReader class.

Özellikler

AttributeCount

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli düğümdeki özniteliklerin sayısını alır.When overridden in a derived class, gets the number of attributes on the current node.

BaseURI

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli düğümün temel URI 'sini alır.When overridden in a derived class, gets the base URI of the current node.

CanReadBinaryContent

XmlReaderİkili içerik okuma yöntemlerini uygulayıp uygulamadığını gösteren bir değer alır.Gets a value indicating whether the XmlReader implements the binary content read methods.

CanReadValueChunk

XmlReaderYönteminin uygulayıp uygulamadığını gösteren bir değer alır ReadValueChunk(Char[], Int32, Int32) .Gets a value indicating whether the XmlReader implements the ReadValueChunk(Char[], Int32, Int32) method.

CanResolveEntity

Bu okuyucunun varlıkları ayrıştırıp çözümleyemeyeceğini gösteren bir değer alır.Gets a value indicating whether this reader can parse and resolve entities.

Depth

Türetilmiş bir sınıfta geçersiz kılındığında, XML belgesindeki geçerli düğümün derinliğini alır.When overridden in a derived class, gets the depth of the current node in the XML document.

EOF

Türetilmiş bir sınıfta geçersiz kılındığında, okuyucunun akışın sonuna konumlandırılıp yerleştirilmediğini gösteren bir değer alır.When overridden in a derived class, gets a value indicating whether the reader is positioned at the end of the stream.

HasAttributes

Geçerli düğümün herhangi bir özniteliğe sahip olup olmadığını gösteren bir değer alır.Gets a value indicating whether the current node has any attributes.

HasValue

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli düğümün bir ' a sahip olup olmayacağını gösteren bir değer alır Value .When overridden in a derived class, gets a value indicating whether the current node can have a Value.

IsDefault

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli düğümün DTD veya şemada tanımlanan varsayılan değerden oluşturulan bir öznitelik olup olmadığını gösteren bir değer alır.When overridden in a derived class, gets a value indicating whether the current node is an attribute that was generated from the default value defined in the DTD or schema.

IsEmptyElement

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli düğümün boş bir öğe olup olmadığını gösteren bir değer alır (örneğin, < myElement/ > ).When overridden in a derived class, gets a value indicating whether the current node is an empty element (for example, <MyElement/>).

Item[Int32]

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen dizin ile özniteliğin değerini alır.When overridden in a derived class, gets the value of the attribute with the specified index.

Item[String, String]

Türetilmiş bir sınıfta geçersiz kılındığında, öznitelik değerini belirtilen ve ile alır LocalName NamespaceURI .When overridden in a derived class, gets the value of the attribute with the specified LocalName and NamespaceURI.

Item[String]

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen özniteliği içeren özniteliğin değerini alır Name .When overridden in a derived class, gets the value of the attribute with the specified Name.

LocalName

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli düğümün yerel adını alır.When overridden in a derived class, gets the local name of the current node.

Name

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli düğümün tam adını alır.When overridden in a derived class, gets the qualified name of the current node.

NamespaceURI

Türetilmiş bir sınıfta geçersiz kılındığında, okuyucunun konumlandığı düğümün ad alanı URI 'sini (W3C ad alanı belirtiminde tanımlanan şekilde) alır.When overridden in a derived class, gets the namespace URI (as defined in the W3C Namespace specification) of the node on which the reader is positioned.

NameTable

Türetilmiş bir sınıfta geçersiz kılındığında, XmlNameTable Bu uygulamayla ilişkili öğesini alır.When overridden in a derived class, gets the XmlNameTable associated with this implementation.

NodeType

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli düğümün türünü alır.When overridden in a derived class, gets the type of the current node.

Prefix

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli düğümle ilişkili ad alanı önekini alır.When overridden in a derived class, gets the namespace prefix associated with the current node.

QuoteChar

Türetilmiş bir sınıfta geçersiz kılındığında, bir öznitelik düğümünün değerini kapsamak için kullanılan tırnak işareti karakterini alır.When overridden in a derived class, gets the quotation mark character used to enclose the value of an attribute node.

ReadState

Türetilmiş bir sınıfta geçersiz kılındığında, okuyucunun durumunu alır.When overridden in a derived class, gets the state of the reader.

SchemaInfo

Şema doğrulamasının sonucu olarak geçerli düğüme atanan şema bilgilerini alır.Gets the schema information that has been assigned to the current node as a result of schema validation.

Settings

XmlReaderSettingsBu örneği oluşturmak için kullanılan nesneyi alır XmlReader .Gets the XmlReaderSettings object used to create this XmlReader instance.

Value

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli düğümün metin değerini alır.When overridden in a derived class, gets the text value of the current node.

ValueType

Geçerli düğüm için ortak dil çalışma zamanı (CLR) türünü alır.Gets The Common Language Runtime (CLR) type for the current node.

XmlLang

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli kapsamı alır xml:lang .When overridden in a derived class, gets the current xml:lang scope.

XmlSpace

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli kapsamı alır xml:space .When overridden in a derived class, gets the current xml:space scope.

Yöntemler

Close()

Türetilmiş bir sınıfta geçersiz kılınırsa, öğesini ReadState olarak değişir Closed .When overridden in a derived class, changes the ReadState to Closed.

Create(Stream)

XmlReaderVarsayılan ayarlarla belirtilen akışı kullanarak yeni bir örnek oluşturur.Creates a new XmlReader instance using the specified stream with default settings.

Create(Stream, XmlReaderSettings)

XmlReaderBelirtilen akış ve ayarlarla yeni bir örnek oluşturur.Creates a new XmlReader instance with the specified stream and settings.

Create(Stream, XmlReaderSettings, String)

XmlReaderBelirtilen akışı, temel URI 'yi ve ayarları kullanarak yeni bir örnek oluşturur.Creates a new XmlReader instance using the specified stream, base URI, and settings.

Create(Stream, XmlReaderSettings, XmlParserContext)

XmlReaderBelirtilen akışı, ayarları ve ayrıştırma için bağlam bilgilerini kullanarak yeni bir örnek oluşturur.Creates a new XmlReader instance using the specified stream, settings, and context information for parsing.

Create(String)

XmlReaderBELIRTILEN URI ile yeni bir örnek oluşturur.Creates a new XmlReader instance with specified URI.

Create(String, XmlReaderSettings)

XmlReaderBELIRTILEN URI ve ayarları kullanarak yeni bir örnek oluşturur.Creates a new XmlReader instance by using the specified URI and settings.

Create(String, XmlReaderSettings, XmlParserContext)

XmlReaderAyrıştırmak için BELIRTILEN URI, ayarlar ve bağlam bilgilerini kullanarak yeni bir örnek oluşturur.Creates a new XmlReader instance by using the specified URI, settings, and context information for parsing.

Create(TextReader)

XmlReaderBelirtilen metin okuyucusunu kullanarak yeni bir örnek oluşturur.Creates a new XmlReader instance by using the specified text reader.

Create(TextReader, XmlReaderSettings)

XmlReaderBelirtilen metin okuyucu ve ayarlarını kullanarak yeni bir örnek oluşturur.Creates a new XmlReader instance by using the specified text reader and settings.

Create(TextReader, XmlReaderSettings, String)

XmlReaderBelirtilen metin okuyucu, ayarlar ve temel URI 'yi kullanarak yeni bir örnek oluşturur.Creates a new XmlReader instance by using the specified text reader, settings, and base URI.

Create(TextReader, XmlReaderSettings, XmlParserContext)

XmlReaderBelirtilen metin okuyucu, ayarlar ve ayrıştırma için bağlam bilgilerini kullanarak yeni bir örnek oluşturur.Creates a new XmlReader instance by using the specified text reader, settings, and context information for parsing.

Create(XmlReader, XmlReaderSettings)

XmlReaderBELIRTILEN xml okuyucu ve ayarlarını kullanarak yeni bir örnek oluşturur.Creates a new XmlReader instance by using the specified XML reader and settings.

Dispose()

XmlReader sınıfının geçerli örneği tarafından kullanılan tüm kaynakları serbest bırakır.Releases all resources used by the current instance of the XmlReader class.

Dispose(Boolean)

XmlReader tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır.Releases the unmanaged resources used by the XmlReader and optionally releases the managed resources.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.Determines whether the specified object is equal to the current object.

(Devralındığı yer: Object)
GetAttribute(Int32)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen dizin ile özniteliğin değerini alır.When overridden in a derived class, gets the value of the attribute with the specified index.

GetAttribute(String)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen özniteliği içeren özniteliğin değerini alır Name .When overridden in a derived class, gets the value of the attribute with the specified Name.

GetAttribute(String, String)

Türetilmiş bir sınıfta geçersiz kılındığında, öznitelik değerini belirtilen ve ile alır LocalName NamespaceURI .When overridden in a derived class, gets the value of the attribute with the specified LocalName and NamespaceURI.

GetHashCode()

Varsayılan karma işlevi olarak işlev görür.Serves as the default hash function.

(Devralındığı yer: Object)
GetType()

TypeGeçerli örneği alır.Gets the Type of the current instance.

(Devralındığı yer: Object)
GetValueAsync()

Geçerli düğümün değerini zaman uyumsuz olarak alır.Asynchronously gets the value of the current node.

IsName(String)

Dize bağımsız değişkeninin geçerli bir XML adı olup olmadığını gösteren bir değer döndürür.Returns a value indicating whether the string argument is a valid XML name.

IsNameToken(String)

Dize bağımsız değişkeninin geçerli bir XML adı belirteci olup olmadığını gösteren bir değer döndürür.Returns a value indicating whether or not the string argument is a valid XML name token.

IsStartElement()

MoveToContent()Geçerli içerik düğümü bir başlangıç etiketi veya boş öğe etiketi ise çağırır ve test eder.Calls MoveToContent() and tests if the current content node is a start tag or empty element tag.

IsStartElement(String)

MoveToContent()Geçerli içerik düğümü bir başlangıç etiketi veya boş öğe etiketi ise ve Name bulunan öğenin özelliği verilen bağımsız değişkenle eşleşiyorsa çağırır ve test eder.Calls MoveToContent() and tests if the current content node is a start tag or empty element tag and if the Name property of the element found matches the given argument.

IsStartElement(String, String)

MoveToContent()Geçerli içerik düğümü bir başlangıç etiketi veya boş öğe etiketi ise ve LocalName NamespaceURI öğesinin ve özellikleri verilen dizelerle eşleşiyorsa çağırır ve test eder.Calls MoveToContent() and tests if the current content node is a start tag or empty element tag and if the LocalName and NamespaceURI properties of the element found match the given strings.

LookupNamespace(String)

Türetilmiş bir sınıfta geçersiz kılınırsa, geçerli öğenin kapsamında bir ad alanı öneki çözer.When overridden in a derived class, resolves a namespace prefix in the current element's scope.

MemberwiseClone()

Geçerli bir basit kopyasını oluşturur Object .Creates a shallow copy of the current Object.

(Devralındığı yer: Object)
MoveToAttribute(Int32)

Türetilmiş bir sınıfta geçersiz kılınırsa, belirtilen dizine sahip özniteliğe gider.When overridden in a derived class, moves to the attribute with the specified index.

MoveToAttribute(String)

Türetilmiş bir sınıfta geçersiz kılınırsa, belirtilen özniteliğine sahip özniteliğe gider Name .When overridden in a derived class, moves to the attribute with the specified Name.

MoveToAttribute(String, String)

Türetilmiş bir sınıfta geçersiz kılınırsa, belirtilen ve içeren özniteliğe gider LocalName NamespaceURI .When overridden in a derived class, moves to the attribute with the specified LocalName and NamespaceURI.

MoveToContent()

Geçerli düğümün bir içerik (beyaz olmayan boşluk metni,,,,, CDATA Element EndElement EntityReference veya EndEntity ) düğümü olup olmadığını denetler.Checks whether the current node is a content (non-white space text, CDATA, Element, EndElement, EntityReference, or EndEntity) node. Düğüm bir içerik düğümü değilse, okuyucu sonraki içerik düğümüne veya dosya sonuna kadar atlar.If the node is not a content node, the reader skips ahead to the next content node or end of file. Şu türden düğümlerin üzerinde atlar: ProcessingInstruction , DocumentType ,, Comment Whitespace veya SignificantWhitespace .It skips over nodes of the following type: ProcessingInstruction, DocumentType, Comment, Whitespace, or SignificantWhitespace.

MoveToContentAsync()

Zaman uyumsuz olarak, geçerli düğümün bir içerik düğümü olup olmadığını kontrol eder.Asynchronously checks whether the current node is a content node. Düğüm bir içerik düğümü değilse, okuyucu sonraki içerik düğümüne veya dosya sonuna kadar atlar.If the node is not a content node, the reader skips ahead to the next content node or end of file.

MoveToElement()

Türetilmiş bir sınıfta geçersiz kılınırsa, geçerli öznitelik düğümünü içeren öğeye gider.When overridden in a derived class, moves to the element that contains the current attribute node.

MoveToFirstAttribute()

Türetilmiş bir sınıfta geçersiz kılınırsa, ilk özniteliğe gider.When overridden in a derived class, moves to the first attribute.

MoveToNextAttribute()

Türetilmiş bir sınıfta geçersiz kılınırsa, sonraki özniteliğe gider.When overridden in a derived class, moves to the next attribute.

Read()

Türetilmiş bir sınıfta geçersiz kılınırsa, akıştan sonraki düğümü okur.When overridden in a derived class, reads the next node from the stream.

ReadAsync()

Akıştan bir sonraki düğümü zaman uyumsuz olarak okur.Asynchronously reads the next node from the stream.

ReadAttributeValue()

Türetilmiş bir sınıfta geçersiz kılınırsa, öznitelik değerini bir veya daha fazla Text , EntityReference veya EndEntity düğümüne ayrıştırır.When overridden in a derived class, parses the attribute value into one or more Text, EntityReference, or EndEntity nodes.

ReadContentAs(Type, IXmlNamespaceResolver)

İçeriği belirtilen türde bir nesne olarak okur.Reads the content as an object of the type specified.

ReadContentAsAsync(Type, IXmlNamespaceResolver)

İçeriği, belirtilen türden bir nesne olarak zaman uyumsuz olarak okur.Asynchronously reads the content as an object of the type specified.

ReadContentAsBase64(Byte[], Int32, Int32)

İçeriği okur ve Base64 kodu çözülen ikili baytları döndürür.Reads the content and returns the Base64 decoded binary bytes.

ReadContentAsBase64Async(Byte[], Int32, Int32)

İçeriği zaman uyumsuz olarak okur ve Base64 kodu çözülen ikili baytları döndürür.Asynchronously reads the content and returns the Base64 decoded binary bytes.

ReadContentAsBinHex(Byte[], Int32, Int32)

İçeriği okur ve BinHex kodu çözülen ikili baytları döndürür.Reads the content and returns the BinHex decoded binary bytes.

ReadContentAsBinHexAsync(Byte[], Int32, Int32)

İçeriği zaman uyumsuz olarak okur ve BinHex kodu çözülen ikili baytları döndürür.Asynchronously reads the content and returns the BinHex decoded binary bytes.

ReadContentAsBoolean()

Geçerli konumdaki metin içeriğini bir olarak okur Boolean .Reads the text content at the current position as a Boolean.

ReadContentAsDateTime()

Geçerli konumdaki metin içeriğini bir nesne olarak okur DateTime .Reads the text content at the current position as a DateTime object.

ReadContentAsDateTimeOffset()

Geçerli konumdaki metin içeriğini bir nesne olarak okur DateTimeOffset .Reads the text content at the current position as a DateTimeOffset object.

ReadContentAsDecimal()

Geçerli konumdaki metin içeriğini bir nesne olarak okur Decimal .Reads the text content at the current position as a Decimal object.

ReadContentAsDouble()

Geçerli konumdaki metin içeriğini çift duyarlıklı kayan noktalı sayı olarak okur.Reads the text content at the current position as a double-precision floating-point number.

ReadContentAsFloat()

Geçerli konumdaki metin içeriğini tek duyarlıklı kayan noktalı sayı olarak okur.Reads the text content at the current position as a single-precision floating point number.

ReadContentAsInt()

Geçerli konumdaki metin içeriğini 32 bitlik işaretli bir tamsayı olarak okur.Reads the text content at the current position as a 32-bit signed integer.

ReadContentAsLong()

Geçerli konumdaki metin içeriğini 64 bitlik işaretli bir tamsayı olarak okur.Reads the text content at the current position as a 64-bit signed integer.

ReadContentAsObject()

Geçerli konumdaki metin içeriğini bir olarak okur Object .Reads the text content at the current position as an Object.

ReadContentAsObjectAsync()

Geçerli konumdaki metin içeriğini zaman uyumsuz olarak bir olarak okur Object .Asynchronously reads the text content at the current position as an Object.

ReadContentAsString()

Geçerli konumdaki metin içeriğini bir nesne olarak okur String .Reads the text content at the current position as a String object.

ReadContentAsStringAsync()

Geçerli konumdaki metin içeriğini bir nesne olarak zaman uyumsuz olarak okur String .Asynchronously reads the text content at the current position as a String object.

ReadElementContentAs(Type, IXmlNamespaceResolver)

Öğe içeriğini istenen tür olarak okur.Reads the element content as the requested type.

ReadElementContentAs(Type, IXmlNamespaceResolver, String, String)

Belirtilen yerel ad ve ad alanı URI 'sinin geçerli öğeyle eşleşip eşleşmediğini denetler ve öğe içeriğini istenen tür olarak okur.Checks that the specified local name and namespace URI matches that of the current element, then reads the element content as the requested type.

ReadElementContentAsAsync(Type, IXmlNamespaceResolver)

Öğe içeriğini istenen tür olarak zaman uyumsuz olarak okur.Asynchronously reads the element content as the requested type.

ReadElementContentAsBase64(Byte[], Int32, Int32)

Öğeyi okur ve içeriğin kodunu çözer Base64 .Reads the element and decodes the Base64 content.

ReadElementContentAsBase64Async(Byte[], Int32, Int32)

Öğeyi zaman uyumsuz olarak okur ve içeriğin kodunu çözer Base64 .Asynchronously reads the element and decodes the Base64 content.

ReadElementContentAsBinHex(Byte[], Int32, Int32)

Öğeyi okur ve içeriğin kodunu çözer BinHex .Reads the element and decodes the BinHex content.

ReadElementContentAsBinHexAsync(Byte[], Int32, Int32)

Öğeyi zaman uyumsuz olarak okur ve içeriğin kodunu çözer BinHex .Asynchronously reads the element and decodes the BinHex content.

ReadElementContentAsBoolean()

Geçerli öğeyi okur ve içeriği bir nesne olarak döndürür Boolean .Reads the current element and returns the contents as a Boolean object.

ReadElementContentAsBoolean(String, String)

Belirtilen yerel ad ve ad alanı URI 'sinin geçerli öğeyle eşleşip eşleşmediğini denetler, sonra geçerli öğeyi okur ve içeriği bir nesne olarak döndürür Boolean .Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a Boolean object.

ReadElementContentAsDateTime()

Geçerli öğeyi okur ve içeriği bir nesne olarak döndürür DateTime .Reads the current element and returns the contents as a DateTime object.

ReadElementContentAsDateTime(String, String)

Belirtilen yerel ad ve ad alanı URI 'sinin geçerli öğeyle eşleşip eşleşmediğini denetler, sonra geçerli öğeyi okur ve içeriği bir nesne olarak döndürür DateTime .Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a DateTime object.

ReadElementContentAsDecimal()

Geçerli öğeyi okur ve içeriği bir nesne olarak döndürür Decimal .Reads the current element and returns the contents as a Decimal object.

ReadElementContentAsDecimal(String, String)

Belirtilen yerel ad ve ad alanı URI 'sinin geçerli öğeyle eşleşip eşleşmediğini denetler, sonra geçerli öğeyi okur ve içeriği bir nesne olarak döndürür Decimal .Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a Decimal object.

ReadElementContentAsDouble()

Geçerli öğeyi okur ve içeriği çift duyarlıklı kayan noktalı sayı olarak döndürür.Reads the current element and returns the contents as a double-precision floating-point number.

ReadElementContentAsDouble(String, String)

Belirtilen yerel ad ve ad alanı URI 'sinin geçerli öğeyle eşleşip eşleşmediğini denetler, sonra geçerli öğeyi okur ve içeriği çift duyarlıklı kayan noktalı sayı olarak döndürür.Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a double-precision floating-point number.

ReadElementContentAsFloat()

Geçerli öğeyi okur ve içeriği tek duyarlıklı kayan noktalı sayı olarak döndürür.Reads the current element and returns the contents as single-precision floating-point number.

ReadElementContentAsFloat(String, String)

Belirtilen yerel ad ve ad alanı URI 'sinin geçerli öğeyle eşleşip eşleşmediğini denetler, sonra geçerli öğeyi okur ve içeriği tek duyarlıklı kayan noktalı sayı olarak döndürür.Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a single-precision floating-point number.

ReadElementContentAsInt()

Geçerli öğeyi okur ve içeriği 32 bitlik işaretli bir tamsayı olarak döndürür.Reads the current element and returns the contents as a 32-bit signed integer.

ReadElementContentAsInt(String, String)

Belirtilen yerel ad ve ad alanı URI 'sinin geçerli öğeyle eşleşip eşleşmediğini denetler, sonra geçerli öğeyi okur ve içeriği 32 bitlik işaretli bir tamsayı olarak döndürür.Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a 32-bit signed integer.

ReadElementContentAsLong()

Geçerli öğeyi okur ve içeriği 64 bitlik işaretli bir tamsayı olarak döndürür.Reads the current element and returns the contents as a 64-bit signed integer.

ReadElementContentAsLong(String, String)

Belirtilen yerel ad ve ad alanı URI 'sinin geçerli öğeyle eşleşip eşleşmediğini denetler, sonra geçerli öğeyi okur ve içeriği 64 bitlik işaretli bir tamsayı olarak döndürür.Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a 64-bit signed integer.

ReadElementContentAsObject()

Geçerli öğeyi okur ve içeriğini bir olarak döndürür Object .Reads the current element and returns the contents as an Object.

ReadElementContentAsObject(String, String)

Belirtilen yerel ad ve ad alanı URI 'sinin geçerli öğeyle eşleşip eşleşmediğini denetler, sonra geçerli öğeyi okur ve içeriğini bir olarak döndürür Object .Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as an Object.

ReadElementContentAsObjectAsync()

Geçerli öğeyi zaman uyumsuz olarak okur ve içeriğini bir olarak döndürür Object .Asynchronously reads the current element and returns the contents as an Object.

ReadElementContentAsString()

Geçerli öğeyi okur ve içeriği bir nesne olarak döndürür String .Reads the current element and returns the contents as a String object.

ReadElementContentAsString(String, String)

Belirtilen yerel ad ve ad alanı URI 'sinin geçerli öğeyle eşleşip eşleşmediğini denetler, sonra geçerli öğeyi okur ve içeriği bir nesne olarak döndürür String .Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a String object.

ReadElementContentAsStringAsync()

Geçerli öğeyi zaman uyumsuz olarak okur ve içeriği bir nesne olarak döndürür String .Asynchronously reads the current element and returns the contents as a String object.

ReadElementString()

Salt metin öğesi okur.Reads a text-only element. Ancak, ReadElementContentAsString() Bu işlemi işlemek için daha basit bir yol sağladığından bunun yerine yöntemini kullanmanızı öneririz.However, we recommend that you use the ReadElementContentAsString() method instead, because it provides a more straightforward way to handle this operation.

ReadElementString(String)

NameBir salt metin öğesi okumadan önce, öğe özelliğinin bulunan belirtilen dizeyle eşleşip eşleşmediğini denetler.Checks that the Name property of the element found matches the given string before reading a text-only element. Ancak, ReadElementContentAsString() Bu işlemi işlemek için daha basit bir yol sağladığından bunun yerine yöntemini kullanmanızı öneririz.However, we recommend that you use the ReadElementContentAsString() method instead, because it provides a more straightforward way to handle this operation.

ReadElementString(String, String)

LocalName NamespaceURI Bir salt metin öğesi okumadan önce, bulunan öğesinin ve özelliklerinin belirtilen dizeler ile eşleşip eşleşmediğini denetler.Checks that the LocalName and NamespaceURI properties of the element found matches the given strings before reading a text-only element. Ancak, ReadElementContentAsString(String, String) Bu işlemi işlemek için daha basit bir yol sağladığından bunun yerine yöntemini kullanmanızı öneririz.However, we recommend that you use the ReadElementContentAsString(String, String) method instead, because it provides a more straightforward way to handle this operation.

ReadEndElement()

Geçerli içerik düğümünün bir bitiş etiketi olduğunu denetler ve okuyucuyu sonraki düğüme ilerletir.Checks that the current content node is an end tag and advances the reader to the next node.

ReadInnerXml()

Türetilmiş bir sınıfta geçersiz kılınırsa, biçimlendirme dahil olmak üzere tüm içeriği dize olarak okur.When overridden in a derived class, reads all the content, including markup, as a string.

ReadInnerXmlAsync()

Biçimlendirme de dahil olmak üzere tüm içeriği bir dize olarak zaman uyumsuz olarak okur.Asynchronously reads all the content, including markup, as a string.

ReadOuterXml()

Türetilmiş bir sınıfta geçersiz kılınırsa, bu düğümü ve tüm alt öğelerini temsil eden biçimlendirme dahil içeriğini okur.When overridden in a derived class, reads the content, including markup, representing this node and all its children.

ReadOuterXmlAsync()

Bu düğümü ve tüm alt öğelerini temsil eden biçimlendirme dahil içeriği zaman uyumsuz olarak okur.Asynchronously reads the content, including markup, representing this node and all its children.

ReadStartElement()

Geçerli düğümün bir öğe olduğunu denetler ve okuyucuyu sonraki düğüme ilerletir.Checks that the current node is an element and advances the reader to the next node.

ReadStartElement(String)

Geçerli içerik düğümünün verilen bir öğe olduğunu denetler Name ve okuyucuyu sonraki düğüme ilerletir.Checks that the current content node is an element with the given Name and advances the reader to the next node.

ReadStartElement(String, String)

Geçerli içerik düğümünün verilen ve ile bir öğe olduğunu denetler LocalName NamespaceURI ve okuyucuyu sonraki düğüme ilerletir.Checks that the current content node is an element with the given LocalName and NamespaceURI and advances the reader to the next node.

ReadString()

Türetilmiş bir sınıfta geçersiz kılınırsa, öğe veya metin düğümünün içeriğini dize olarak okur.When overridden in a derived class, reads the contents of an element or text node as a string. Ancak, ReadElementContentAsString Bu işlemi işlemek için daha basit bir yol sağladığından bunun yerine yöntemini kullanmanızı öneririz.However, we recommend that you use the ReadElementContentAsString method instead, because it provides a more straightforward way to handle this operation.

ReadSubtree()

XmlReaderGeçerli düğümü ve tüm alt öğelerini okumak için kullanılabilecek yeni bir örnek döndürür.Returns a new XmlReader instance that can be used to read the current node, and all its descendants.

ReadToDescendant(String)

XmlReaderBelirtilen nitelenmiş ada sahip bir sonraki alt öğeye ilerletir.Advances the XmlReader to the next descendant element with the specified qualified name.

ReadToDescendant(String, String)

XmlReaderBelirtilen yerel ad ve ad alanı URI 'si ile sonraki alt öğeye ilerler.Advances the XmlReader to the next descendant element with the specified local name and namespace URI.

ReadToFollowing(String)

Belirtilen nitelenmiş ada sahip bir öğe bulunana kadar okur.Reads until an element with the specified qualified name is found.

ReadToFollowing(String, String)

Belirtilen yerel adı ve ad alanı URI 'SI bulunan bir öğe bulunana kadar okur.Reads until an element with the specified local name and namespace URI is found.

ReadToNextSibling(String)

XmlReaderBelirtilen nitelenmiş ada sahip bir sonraki eşdüzey öğeye ilerletir.Advances the XmlReader to the next sibling element with the specified qualified name.

ReadToNextSibling(String, String)

XmlReaderBelirtilen yerel ad ve ad alanı URI 'si ile sonraki eşdüzey öğeye ilerler.Advances the XmlReader to the next sibling element with the specified local name and namespace URI.

ReadValueChunk(Char[], Int32, Int32)

XML belgesine eklenmiş büyük metin akışlarını okur.Reads large streams of text embedded in an XML document.

ReadValueChunkAsync(Char[], Int32, Int32)

Zaman uyumsuz bir XML belgesinde gömülü metnin büyük akışlarını zaman uyumsuz olarak okur.Asynchronously reads large streams of text embedded in an XML document.

ResolveEntity()

Türetilmiş bir sınıfta geçersiz kılınırsa, düğümlerin varlık başvurusunu çözer EntityReference .When overridden in a derived class, resolves the entity reference for EntityReference nodes.

Skip()

Geçerli düğümün alt öğelerini atlar.Skips the children of the current node.

SkipAsync()

Geçerli düğümün alt öğelerini zaman uyumsuz olarak atlar.Asynchronously skips the children of the current node.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.Returns a string that represents the current object.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

IDisposable.Dispose()

Bu üyenin açıklaması için bkz Dispose() ..For a description of this member, see Dispose().

Şunlara uygulanır

Ayrıca bkz.