2012-04-06 94 views
3

我已经构建了一个显示4列和4行的非常简单的表格。当执行以下代码时,它会显示.xml文件中的其他每个元素。它不会歧视每个表格行。它通读没有任何问题,我已经运行xml验证器,所以它不是一个语法问题。为什么我的XML读取器读取其他每个元素?

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; 
     } 
    } 
} 

回答

6

因为无论.Read().ReadElementContentAsString()(无参数过载)的读取器移动到下一个节点。

更改while条件:

while (!reader.EOF) 

然后加:

else reader.Read(); 
+0

那么,什么将您的建议是让读者通过正确显示所期望的结果表迭代? – 2012-04-06 01:42:59

+0

@詹姆斯 - 我已经更新了我的答案。 – gilly3 2012-04-06 01:49:57

+0

这似乎并不是解决方案,只是在页面试图加载(没有成功)时获得一个旋转轮。我不确定是否需要其他格式。 – 2012-04-06 01:52:43