【问题标题】:How to get Rootnode Element attribute value in a xml File如何在 xml 文件中获取 Rootnode 元素属性值
【发布时间】:2012-09-03 13:30:32
【问题描述】:

我想读取一个 Rootnode 元素属性值,但我的代码不起作用。我的代码

XML:
      <Datatable Name="AS1" Type="table">
        <Table>
           <Column Name="ID" Type="uniqueidentifier">
           </Column>
        </Table>
      </Datatable>

代码:

            XDocument doc= XDocument.Load(path);
            var q = (from c in doc.Elements("Datatable")
                    select new
                    {
                        dID = c.Attribute("Name"),

                    }).ToList(); 

          var on = new Ton()
             {

                Name=q[0].dID.ToString(),
                CreateTime = DateTime.Now
             };

所以我需要将选定的根节点属性值传递给 Name 对象。 但是当我尝试使用此代码时,q 返回计数 = 0。 任何人都可以帮助获取根节点值吗?

谢谢,

【问题讨论】:

  • 也许你加载了错误的文件?
  • 我在 Name=q[0] 中遇到错误.....就像索引超出范围。必须是非负数且小于集合的大小。参数名称:索引
  • 代码没问题。还有别的问题。检查您从中加载文件的路径。验证它确实有一个节点 Datatable 而不是 DataTable...
  • 我的第一行是 接下来是我的根节点,它有一些命名空间也像 xmlns,xsi ,这有什么问题吗?
  • 是的,必须在标签名称之前添加命名空间。请显示第一行。

标签: xml linq c#-4.0


【解决方案1】:

更改代码的开头:

XNamespace xn = "kd.gnp.com/Model/1.0";
XDocument doc= XDocument.Load(path);
            var q = (from c in doc.Elements(xn +"Datatable")

...一样

【讨论】:

    猜你喜欢
    • 2021-08-07
    • 1970-01-01
    • 2017-12-23
    • 2011-05-07
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多