Lire en anglais

Partager via


DataTable.ReadXml Méthode

Définition

Lit le schéma et les données XML dans le DataTable.

Surcharges

ReadXml(Stream)

Lit le schéma et les données XML dans le DataTable à l'aide du Stream spécifié.

ReadXml(TextReader)

Lit le schéma et les données XML dans le DataTable à l'aide du TextReader spécifié.

ReadXml(String)

Lit le schéma et les données XML dans le DataTable à partir du fichier spécifié.

ReadXml(XmlReader)

Lit le schéma et les données XML dans le DataTable à l'aide du XmlReader spécifié.

Remarques

La ReadXml méthode permet de lire uniquement les données, ou à la fois les données et le schéma dans un DataTable document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma. Pour lire les données et le schéma, utilisez l’une ReadXML des surcharges qui incluent le XmlReadMode paramètre et définissez sa valeur sur ReadSchema.

Notez qu’il en va de même pour les WriteXml méthodes et WriteXmlSchema , respectivement. Pour écrire des données XML, ou un schéma et des données à partir du DataTable, utilisez la WriteXml méthode . Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode .

Notes

Un InvalidOperationException est levée si un type de colonne dans le DataRow en cours de lecture ou d’écriture dans implémente IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .

ReadXml(Stream)

Source:
DataTable.cs
Source:
DataTable.cs
Source:
DataTable.cs

Lit le schéma et les données XML dans le DataTable à l'aide du Stream spécifié.

public System.Data.XmlReadMode ReadXml (System.IO.Stream? stream);
public System.Data.XmlReadMode ReadXml (System.IO.Stream stream);

Paramètres

stream
Stream

Objet qui dérive de Stream.

Retours

XmlReadMode utilisé pour lire les données.

Exemples

L’exemple suivant crée un DataTable contenant deux colonnes et dix lignes. L’exemple écrit le schéma et les DataTable données dans un flux de mémoire, en appelant la WriteXml méthode . L’exemple crée une seconde DataTable et appelle la ReadXml méthode pour la remplir de schéma et de données.

private static void DemonstrateReadWriteXMLDocumentWithStream()
{
    DataTable table = CreateTestTable("XmlDemo");
    PrintValues(table, "Original table");

    // Write the schema and data to XML in a memory stream.
    System.IO.MemoryStream xmlStream = new System.IO.MemoryStream();
    table.WriteXml(xmlStream, XmlWriteMode.WriteSchema);

    // Rewind the memory stream.
    xmlStream.Position = 0;

    DataTable newTable = new DataTable();
    newTable.ReadXml(xmlStream);

    // Print out values in the table.
    PrintValues(newTable, "New table");
}

private static DataTable CreateTestTable(string tableName)
{
    // Create a test DataTable with two columns and a few rows.
    DataTable table = new DataTable(tableName);
    DataColumn column = new DataColumn("id", typeof(System.Int32));
    column.AutoIncrement = true;
    table.Columns.Add(column);

    column = new DataColumn("item", typeof(System.String));
    table.Columns.Add(column);

    // Add ten rows.
    DataRow row;
    for (int i = 0; i <= 9; i++)
    {
        row = table.NewRow();
        row["item"] = "item " + i;
        table.Rows.Add(row);
    }

    table.AcceptChanges();
    return table;
}

private static void PrintValues(DataTable table, string label)
{
    // Display the contents of the supplied DataTable:
    Console.WriteLine(label);
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn column in table.Columns)
        {
            Console.Write("\t{0}", row[column]);
        }
        Console.WriteLine();
    }
}

Remarques

Le courant DataTable et ses descendants sont chargés avec les données du fourni Stream. Le comportement de cette méthode est identique à celui de la DataSet.ReadXml méthode, sauf que dans ce cas, les données sont chargées uniquement pour la table active et ses descendants.

La ReadXml méthode permet de lire les données uniquement, ou les données et le schéma dans un à partir d’un DataTable document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma.

Notez qu’il en va de même pour les WriteXml méthodes et WriteXmlSchema , respectivement. Pour écrire des données XML, ou des schémas et des données à partir de , DataTableutilisez la WriteXml méthode . Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode .

Notes

Un InvalidOperationException sera levée si un type de colonne dans le DataRow en cours de lecture ou écrit dans implémente IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .

Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant le chargement des données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données), une exception est levée.

Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, si nécessaire, en fonction de la structure du document XML. Si le schéma ne peut pas être étendu via l’inférence afin d’exposer toutes les données, une exception est levée.

Notes

le DataSet n’associe pas un élément XML à son correspondant DataColumn ou DataTable lorsque des caractères XML légaux tels que ( » _ ») sont placés dans une séquence d’échappement dans le code XML sérialisé. Le DataSet lui-même échappe uniquement aux caractères XML non autorisés dans les noms d’éléments XML et ne peut donc consommer que le même. Lorsque des caractères légaux dans le nom de l’élément XML sont placés dans une séquence d’échappement, l’élément est ignoré lors du traitement.

Voir aussi

S’applique à

ReadXml(TextReader)

Source:
DataTable.cs
Source:
DataTable.cs
Source:
DataTable.cs

Lit le schéma et les données XML dans le DataTable à l'aide du TextReader spécifié.

public System.Data.XmlReadMode ReadXml (System.IO.TextReader? reader);
public System.Data.XmlReadMode ReadXml (System.IO.TextReader reader);

Paramètres

reader
TextReader

TextReader qui sera utilisé pour lire les données.

Retours

XmlReadMode utilisé pour lire les données.

Exemples

L’exemple suivant crée un DataTable contenant deux colonnes et dix lignes. L’exemple écrit le schéma et les DataTable données dans un flux de mémoire, en appelant la WriteXml méthode . L’exemple crée une seconde DataTable et appelle la ReadXml méthode pour la remplir de schéma et de données.

private static void DemonstrateReadWriteXMLDocumentWithReader()
{
    DataTable table = CreateTestTable("XmlDemo");
    PrintValues(table, "Original table");

    // Write the schema and data to XML in a memory stream.
    System.IO.MemoryStream xmlStream = new System.IO.MemoryStream();
    table.WriteXml(xmlStream, XmlWriteMode.WriteSchema);

    // Rewind the memory stream.
    xmlStream.Position = 0;

    System.IO.StreamReader reader =
        new System.IO.StreamReader(xmlStream);
    DataTable newTable = new DataTable();
    newTable.ReadXml(reader);

    // Print out values in the table.
    PrintValues(newTable, "New table");
}

private static DataTable CreateTestTable(string tableName)
{
    // Create a test DataTable with two columns and a few rows.
    DataTable table = new DataTable(tableName);
    DataColumn column = new DataColumn("id", typeof(System.Int32));
    column.AutoIncrement = true;
    table.Columns.Add(column);

    column = new DataColumn("item", typeof(System.String));
    table.Columns.Add(column);

    // Add ten rows.
    DataRow row;
    for (int i = 0; i <= 9; i++)
    {
        row = table.NewRow();
        row["item"] = "item " + i;
        table.Rows.Add(row);
    }

    table.AcceptChanges();
    return table;
}

private static void PrintValues(DataTable table, string label)
{
    Console.WriteLine(label);
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn column in table.Columns)
        {
            Console.Write("\t{0}", row[column]);
        }
        Console.WriteLine();
    }
}

Remarques

Le courant DataTable et ses descendants sont chargés avec les données du fourni TextReader. Le comportement de cette méthode est identique à celui de la DataSet.ReadXml méthode, sauf que dans ce cas, les données sont chargées uniquement pour la table active et ses descendants.

La ReadXml méthode permet de lire les données uniquement, ou les données et le schéma dans un à partir d’un DataTable document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma.

Notez qu’il en va de même pour les WriteXml méthodes et WriteXmlSchema , respectivement. Pour écrire des données XML, ou des schémas et des données à partir de , DataTableutilisez la WriteXml méthode . Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode .

Notes

Un InvalidOperationException sera levée si un type de colonne dans le DataRow en cours de lecture ou écrit dans implémente IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .

Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant le chargement des données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données), une exception est levée.

Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, si nécessaire, en fonction de la structure du document XML. Si le schéma ne peut pas être étendu via l’inférence afin d’exposer toutes les données, une exception est levée.

Notes

le DataSet n’associe pas un élément XML à son correspondant DataColumn ou DataTable lorsque des caractères XML légaux tels que ( » _ ») sont placés dans une séquence d’échappement dans le code XML sérialisé. Le DataSet lui-même échappe uniquement aux caractères XML non autorisés dans les noms d’éléments XML et ne peut donc consommer que le même. Lorsque des caractères légaux dans le nom de l’élément XML sont placés dans une séquence d’échappement, l’élément est ignoré lors du traitement.

Voir aussi

S’applique à

ReadXml(String)

Source:
DataTable.cs
Source:
DataTable.cs
Source:
DataTable.cs

Lit le schéma et les données XML dans le DataTable à partir du fichier spécifié.

public System.Data.XmlReadMode ReadXml (string fileName);

Paramètres

fileName
String

Nom du fichier à partir duquel lire les données.

Retours

XmlReadMode utilisé pour lire les données.

Exemples

L’exemple suivant crée un DataTable contenant deux colonnes et dix lignes. L’exemple écrit le schéma et les DataTable données sur le disque. L’exemple crée une seconde DataTable et appelle la ReadXml méthode pour la remplir de schéma et de données.

private static void DemonstrateReadWriteXMLDocumentWithString()
{
    DataTable table = CreateTestTable("XmlDemo");
    PrintValues(table, "Original table");

    string fileName = "C:\\TestData.xml";
    table.WriteXml(fileName, XmlWriteMode.WriteSchema);

    DataTable newTable = new DataTable();
    newTable.ReadXml(fileName);

    // Print out values in the table.
    PrintValues(newTable, "New table");
}

private static DataTable CreateTestTable(string tableName)
{
    // Create a test DataTable with two columns and a few rows.
    DataTable table = new DataTable(tableName);
    DataColumn column = new DataColumn("id", typeof(System.Int32));
    column.AutoIncrement = true;
    table.Columns.Add(column);

    column = new DataColumn("item", typeof(System.String));
    table.Columns.Add(column);

    // Add ten rows.
    DataRow row;
    for (int i = 0; i <= 9; i++)
    {
        row = table.NewRow();
        row["item"] = "item " + i;
        table.Rows.Add(row);
    }

    table.AcceptChanges();
    return table;
}

private static void PrintValues(DataTable table, string label)
{
    Console.WriteLine(label);
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn column in table.Columns)
        {
            Console.Write("\t{0}", row[column]);
        }
        Console.WriteLine();
    }
}

Remarques

Le courant DataTable et ses descendants sont chargés avec les données du fichier nommé dans le fourni String. Le comportement de cette méthode est identique à celui de la DataSet.ReadXml méthode, sauf que dans ce cas, les données sont chargées uniquement pour la table active et ses descendants.

La ReadXml méthode permet de lire les données uniquement, ou les données et le schéma dans un à partir d’un DataTable document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma.

Notez qu’il en va de même pour les WriteXml méthodes et WriteXmlSchema , respectivement. Pour écrire des données XML, ou des schémas et des données à partir de , DataTableutilisez la WriteXml méthode . Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode .

Notes

Un InvalidOperationException sera levée si un type de colonne dans le DataRow en cours de lecture ou écrit dans implémente IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .

Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant le chargement des données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données), une exception est levée.

Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, si nécessaire, en fonction de la structure du document XML. Si le schéma ne peut pas être étendu via l’inférence afin d’exposer toutes les données, une exception est levée.

Notes

le DataSet n’associe pas un élément XML à son correspondant DataColumn ou DataTable lorsque des caractères XML légaux tels que ( » _ ») sont placés dans une séquence d’échappement dans le code XML sérialisé. Le DataSet lui-même échappe uniquement aux caractères XML non autorisés dans les noms d’éléments XML et ne peut donc consommer que le même. Lorsque des caractères légaux dans le nom de l’élément XML sont placés dans une séquence d’échappement, l’élément est ignoré lors du traitement.

using System.Data;
public class A {
   static void Main(string[] args) {
      DataTable tabl = new DataTable("mytable");
      tabl.Columns.Add(new DataColumn("id", typeof(int)));
      for (int i = 0; i < 10; i++) {
         DataRow row = tabl.NewRow();
         row["id"] = i;
         tabl.Rows.Add(row);
      }
      tabl.WriteXml("f.xml", XmlWriteMode.WriteSchema);
      DataTable newt = new DataTable();
      newt.ReadXml("f.xml");
   }
}

Voir aussi

S’applique à

ReadXml(XmlReader)

Source:
DataTable.cs
Source:
DataTable.cs
Source:
DataTable.cs

Lit le schéma et les données XML dans le DataTable à l'aide du XmlReader spécifié.

public System.Data.XmlReadMode ReadXml (System.Xml.XmlReader? reader);
public System.Data.XmlReadMode ReadXml (System.Xml.XmlReader reader);

Paramètres

reader
XmlReader

XmlReader qui sera utilisé pour lire les données.

Retours

XmlReadMode utilisé pour lire les données.

Exemples

L’exemple suivant crée un DataTable contenant deux colonnes et dix lignes. L’exemple écrit le DataTable schéma et les données dans un XmlReader. L’exemple crée une seconde DataTable et appelle la ReadXml méthode pour la remplir avec le schéma et les XmlReader données du instance.

private static void DemonstrateReadWriteXMLDocumentWithReader()
{
    DataTable table = CreateTestTable("XmlDemo");
    PrintValues(table, "Original table");

    // Write the schema and data to XML in a memory stream.
    System.IO.MemoryStream xmlStream = new System.IO.MemoryStream();
    table.WriteXml(xmlStream, XmlWriteMode.WriteSchema);

    // Rewind the memory stream.
    xmlStream.Position = 0;

    System.Xml.XmlTextReader reader =
        new System.Xml.XmlTextReader(xmlStream);
    DataTable newTable = new DataTable();
    newTable.ReadXml(reader);

    // Print out values in the table.
    PrintValues(newTable, "New table");
}

private static DataTable CreateTestTable(string tableName)
{
    // Create a test DataTable with two columns and a few rows.
    DataTable table = new DataTable(tableName);
    DataColumn column = new DataColumn("id", typeof(System.Int32));
    column.AutoIncrement = true;
    table.Columns.Add(column);

    column = new DataColumn("item", typeof(System.String));
    table.Columns.Add(column);

    // Add ten rows.
    DataRow row;
    for (int i = 0; i <= 9; i++)
    {
        row = table.NewRow();
        row["item"] = "item " + i;
        table.Rows.Add(row);
    }

    table.AcceptChanges();
    return table;
}

private static void PrintValues(DataTable table, string label)
{
    Console.WriteLine(label);
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn column in table.Columns)
        {
            Console.Write("\t{0}", row[column]);
        }
        Console.WriteLine();
    }
}

Remarques

Le courant DataTable et ses descendants sont chargés avec les données du fichier nommé dans le fourni XmlReader. Le comportement de cette méthode est identique à celui de la ReadXml méthode, sauf que dans ce cas, les données sont chargées uniquement pour la table active et ses descendants.

La ReadXml méthode permet de lire les données uniquement, ou les données et le schéma dans un à partir d’un DataTable document XML, tandis que la ReadXmlSchema méthode lit uniquement le schéma.

Notez qu’il en va de même pour les WriteXml méthodes et WriteXmlSchema , respectivement. Pour écrire des données XML, ou des schémas et des données à partir de , DataTableutilisez la WriteXml méthode . Pour écrire uniquement le schéma, utilisez la WriteXmlSchema méthode .

Notes

Un InvalidOperationException sera levée si un type de colonne dans le DataRow en cours de lecture ou écrit dans implémente IDynamicMetaObjectProvider et n’implémente IXmlSerializablepas .

Si un schéma en ligne est spécifié, le schéma en ligne est utilisé pour étendre la structure relationnelle existante avant le chargement des données. S’il existe des conflits (par exemple, la même colonne dans la même table définie avec différents types de données), une exception est levée.

Si aucun schéma en ligne n’est spécifié, la structure relationnelle est étendue par inférence, si nécessaire, en fonction de la structure du document XML. Si le schéma ne peut pas être étendu via l’inférence afin d’exposer toutes les données, une exception est levée.

Notes

le DataSet n’associe pas un élément XML à son correspondant DataColumn ou DataTable lorsque des caractères XML légaux tels que ( » _ ») sont placés dans une séquence d’échappement dans le code XML sérialisé. Le DataSet lui-même échappe uniquement aux caractères XML non autorisés dans les noms d’éléments XML et ne peut donc consommer que le même. Lorsque les caractères juridiques dans le nom de l’élément XML sont placés dans une séquence d’échappement, l’élément est ignoré lors du traitement.

Voir aussi

S’applique à