c# des espaces problème avec XmlReader

J'ai un xml simple

<data>
    <node1>value1</node1>
    <node2>value2</node2>
</data>

Je suis en utilisant IXmlSerializable pour lire et écrire des données xml avec des Otd. Le code suivant fonctionne très bien

XmlReader reader;
...
while( reader.Read() ){
    Console.Write( reader.ReadElementContentAsString() );
}
//outputs value1value2

Toutefois, si les espacements dans le xml sont supprimés, c'est à dire

<data>
    <node1>value1</node1><node2>value2</node2>
</data>

ou j'utilise XmlReaderSettings.IgnoreWhitespace = true;, le code affiche seulement "valeur1" ignorer le deuxième nœud. Lorsque j'imprime les nœuds qui l'analyseur de traverse, je peux voir que ReadElementContentAsString déplace le pointeur vers le EndElement de node2, mais je ne comprends pas pourquoi cela devrait-il se passer ou comment résoudre le problème.

Est-il possible de parser XML de mise en œuvre de bug?

===============================================

Voici un exemple de code et 2 exemples de xml qui produisent des résultats différents

string homedir = Path.GetDirectoryName(Application.ExecutablePath);
string xml = Path.Combine( homedir, "settings.xml" );

FileStream stream = new FileStream( xml, FileMode.Open );

XmlReaderSettings readerSettings = new XmlReaderSettings();
readerSettings.IgnoreWhitespace = false;
XmlReader reader = XmlTextReader.Create( stream, readerSettings );

while( reader.Read() ){

    if ( reader.MoveToContent() == XmlNodeType.Element && reader.Name != "data" ){

        System.Diagnostics.Trace.WriteLine(
            reader.NodeType 
            + " "
            + reader.Name
            + " " 
            + reader.ReadElementContentAsString()
        );
    }
}

stream.Close(); 

1.) settings.xml

<?xml version="1.0"?>
<data>
    <node-1>value1</node-1>
    <node-2>value2</node-2>
</data>

2.) settings.xml

<?xml version="1.0"?>
<data>
    <node-1>value1</node-1><node-2>value2</node-2>
</data>

à l'aide de (1) imprime

Element node-1 value1
Element node-2 value2

à l'aide de (2) tirages

Element node-1 value1
Pouvez-vous poster un petit échantillon qui reproduit le problème? Cela semble être non-code de travail, difficile à dire ce qui va mal.
Ok, [ce][1] explique le problème [1]: stackoverflow.com/questions/2299632/...

OriginalL'auteur scibuff | 2012-02-22