Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将xelement加载到数据表中_C#_Xml_Linq To Xml - Fatal编程技术网

C# 将xelement加载到数据表中

C# 将xelement加载到数据表中,c#,xml,linq-to-xml,C#,Xml,Linq To Xml,我有以下xml文件,其中包含了很多关于公司分支机构的信息。。 这只是一个例子 我真正需要的是,只将Branch1中的数据加载到与xml文件结构相同的datatable中,这样datatable就不会有任何问题 我用的是c,我想做的是linq,但我不知道linq。。。 我的问题是: 如何将xml中的条目作为datatable行读取,以便将其复制到datatable中 我现在有: XElement main = XElement.Load("branches.xml"); IEnumerable&l

我有以下xml文件,其中包含了很多关于公司分支机构的信息。。 这只是一个例子

我真正需要的是,只将Branch1中的数据加载到与xml文件结构相同的datatable中,这样datatable就不会有任何问题

我用的是c,我想做的是linq,但我不知道linq。。。 我的问题是: 如何将xml中的条目作为datatable行读取,以便将其复制到datatable中

我现在有:

XElement main = XElement.Load("branches.xml");
IEnumerable<XElement> elList =
from el in main.Descendants("branch").Where(ex=>ex.Attribute("name").Value=="Branch1")
select el;
//this will return me the element where name =Branch1
//now, how would i only load this entry into my datatable ??
//this won`t work
branchesDataTable.ReadXml(XElement el in elList);
非常感谢你的帮助

<?xml version="1.0" encoding="utf-8"?>
<branches>
<branch name="Branch1">
    <address>Street 1, 1234, NY</address>
    <tel>0123456789</tel>
    <director>James</director>
</branch>   
<branch name="Branch2">
    <address>Street 2, 4567, NY</address>
    <tel>9876543210</tel>
    <director>Will</director>
</branch>
</branches>
试一试


您可能会混淆LINQ和LINQtoSQL。您可能不应该使用LINQtoSQL,而是应该看看EntityFramework。。。它与sql无关,我只是将我的xml内容加载到一个数据表中……很抱歉,我可能没有完全理解您的意思!?我用C语言编程…thx为你的答案我在路径中得到非法字符,新的XElementbranches,elList.ToString将整个xml节点放入另一个hi…在我选择我想要的节点后应该是这样的:Street 11234,纽约0123456789詹姆斯没有额外的开头和结尾标签…@Lebro添加了StringReader。。看看这是否有帮助。@lebro我没有关联模式的datatable,因此无法测试它。但是代码的其余部分过滤分支并正确生成xml。
branchesDataTable.ReadXml(new StringReader(new XElement("branches", elList).ToString()));