无法使用数据集绑定gridivew中的XML数据 [英] Unable to bind XML data in gridivew using dataset

查看:59
本文介绍了无法使用数据集绑定gridivew中的XML数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<?xml version="1.0" ?>

<BrowseNode>
  <BrowseNodeId>976390031</BrowseNodeId>
  <Name>Categories</Name>
  <IsCategoryRoot>1</IsCategoryRoot>
  <Children>
    <BrowseNode>
      <BrowseNodeId>1318158031</BrowseNodeId>
      <Name>Action and Adventure</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318052031</BrowseNodeId>
      <Name>Arts, Film and Photography</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318064031</BrowseNodeId>
      <Name>Biographies, Diaries and True Accounts</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318068031</BrowseNodeId>
      <Name>Business and Economics</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318073031</BrowseNodeId>
      <Name>Children's and Young Adult</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318104031</BrowseNodeId>
      <Name>Comics and Mangas</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318105031</BrowseNodeId>
      <Name>Computing, Internet and Digital Media</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318118031</BrowseNodeId>
      <Name>Crafts, Home and Lifestyle</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318161031</BrowseNodeId>
      <Name>Crime, Thriller and Mystery</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>4149751031</BrowseNodeId>
      <Name>Exam Preparation</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1402038031</BrowseNodeId>
      <Name>Fantasy, Horror and Science Fiction</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318128031</BrowseNodeId>
      <Name>Health, Family and Personal Development</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318164031</BrowseNodeId>
      <Name>Historical Fiction</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318133031</BrowseNodeId>
      <Name>History</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318143031</BrowseNodeId>
      <Name>Humour</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318144031</BrowseNodeId>
      <Name>Language, Linguistics and Writing</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318152031</BrowseNodeId>
      <Name>Law</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318157031</BrowseNodeId>
      <Name>Literature and Fiction</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318298031</BrowseNodeId>
      <Name>Maps and Atlases</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318176031</BrowseNodeId>
      <Name>Politics</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318185031</BrowseNodeId>
      <Name>Reference</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318188031</BrowseNodeId>
      <Name>Religion</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318168031</BrowseNodeId>
      <Name>Romance</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318203031</BrowseNodeId>
      <Name>Sciences, Technology and Medicine</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318216031</BrowseNodeId>
      <Name>Society and Social Sciences</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318224031</BrowseNodeId>
      <Name>Sports</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>4149418031</BrowseNodeId>
      <Name>Textbooks</Name>
    </BrowseNode>
    <BrowseNode>
      <BrowseNodeId>1318295031</BrowseNodeId>
      <Name>Travel</Name>
    </BrowseNode>
  </Children>
  <Ancestors>
    <BrowseNode>
      <BrowseNodeId>976389031</BrowseNodeId>
      <Name>Books</Name>
    </BrowseNode>
  </Ancestors>
</BrowseNode>





我尝试了什么:



无法添加const raint to DataTable' BrowseNode'这是一个两个嵌套关系的子表。

我在使用此代码

时出现此错误



using(DataSet ds = new DataSet())

{

//根据您的设计更改XML路径

ds.ReadXml(Server.MapPath(〜/ node.xml));

//将xml数据分配给gridview

GridView1.DataSource = ds;

GridView1.DataBind();

}



What I have tried:

Cannot add constraint to DataTable 'BrowseNode' which is a child table in two nested relations.
Im getting this error when
using this code

using (DataSet ds = new DataSet())
{
//Change the XML Path as per your design
ds.ReadXml(Server.MapPath("~/node.xml"));
//Assign the xml data to gridview
GridView1.DataSource = ds;
GridView1.DataBind();
}

推荐答案

你遇到的问题是因为存在嵌套关系在你的XML文件中发布。

这与XML完全合法,但是DataSet类不支持这个。



那么你能做些什么?吗?

好​​吧,一个选项是从< BrowseNode>重命名根节点到< BrowseNodes>或类似。

然后你可以毫无问题地阅读XML文件。



如果在这种情况下这是可行的,取决于你需要什么提供数据。



这是实现它的一种方法:

The problem you have is because there is a nested relation ship in your XML file.
This perfectly legal as XML goes, but the class DataSet does not support this.

So what can you do?
Well, one option is to rename the root node from <BrowseNode> to <BrowseNodes> or similar.
Then you can read the XML file without any problem.

If this is feasible in this case depends on how you need to present the data.

This is one way to do it on the fly:
XDocument xDoc = XDocument.Load(Server.MapPath("~/node.xml"));
xDoc.Root.Name = "BrowseNodes";
DataSet ds = new DataSet();
ds.ReadXml(xDoc.CreateReader());


这篇关于无法使用数据集绑定gridivew中的XML数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆