2012-04-06 11 views
3

Ich habe eine sehr einfache Tabelle erstellt, die 4 Spalten und 4 Zeilen anzeigt. Wenn der folgende Code ausgeführt wird, werden alle anderen Elemente in der XML-Datei angezeigt. Es diskriminiert nicht pro Tabellenzeile. Es liest sich ohne Probleme durch und ich habe XML-Validatoren ausgeführt, so dass es kein Syntaxproblem ist.Warum liest mein XML-Reader jedes zweite Element?

public partial class lblXmlOutput : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     XmlReaderSettings settings = new XmlReaderSettings(); 
     settings.ConformanceLevel = ConformanceLevel.Document; 
     settings.IgnoreWhitespace = true; 
     settings.IgnoreComments = true; 

     XmlReader reader = XmlReader.Create(Server.MapPath("Part2XMLex.xml"), settings); 

     string result = ""; 

     while (reader.Read()) 
     { 
      if (reader.IsStartElement("td")) 
       result += reader.ReadElementContentAsString(); 

      txtOutput.Text = result; 
     } 
    } 
} 

Antwort

6

Da sowohl .Read() und .ReadElementContentAsString() (die parameter Überlastung), den Leser zu dem nächsten Knoten.

Ihre while Zustand ändern:

while (!reader.EOF) 

Dann fügen Sie:

else reader.Read(); 
+0

Was wäre Ihr Vorschlag dem Leser zu ermöglichen den Tisch richtig durchlaufen die gewünschten Ergebnisse angezeigt wird? –

+0

@James - Ich habe meine Antwort aktualisiert. – gilly3

+0

Es scheint nicht, dass das die Lösung war, einfach ein Spinnrad bekommen, während die Seite versucht zu laden (ohne Erfolg). Ich bin mir nicht sicher, ob andere Formatierungen erforderlich sind. –

Verwandte Themen