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

标签 c# asp.net xml 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;
        }
   }
}

最佳答案

因为 .Read().ReadElementContentAsString()(无参数重载)都将读取器移动到下一个节点。

将您的 while 条件更改为:

while (!reader.EOF)

然后添加:

else reader.Read();

关于c# - 为什么我的 XML 阅读器读取所有其他元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10038193/

相关文章:

c# - JSON 和 ASP.NET MVC

c# - 如何从控制台应用程序访问 Application 对象?

c# - 无法使用 C# 和 LdapConnection 对 Apache DS 进行身份验证?

android - 检索字符串和字符串数组资源的区别?

java - 用于验证 NodeList 的 XPath 表达式

PHP - 来自指定标签的 xml 数据作为 sql 条目

c# - 将变量相乘而不重写

javascript - 页面加载时弹出模态框

c# - 查看是否有人登录了 gmail、yahoo 和 facebook

c# - 如何为 Hangfire 的 mySQL 数据库设置 'connectionString'?