为什么我的XML阅读器会读取所有其他元素?

Jam*_*ger 3 c# xml asp.net xmlreader

我已经构建了一个非常简单的表,显示4列和4行.执行以下代码时,它将显示.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;
        }
   }
}
Run Code Online (Sandbox Code Playgroud)

gil*_*ly3 6

因为.Read().ReadElementContentAsString()(无参数过载)都会将阅读器移动到下一个节点.

将您的while条件更改为:

while (!reader.EOF)
Run Code Online (Sandbox Code Playgroud)

然后加:

else reader.Read();
Run Code Online (Sandbox Code Playgroud)