将数据从xml导入数据库
我想通过XML文件将数据导入数据库: var doc = XDocument.Load(XMLFile); var nodes = from e in doc.Descendants("Person") where e.Element("PersonID").Value == "1" select e; 个人表的结构与节点的数据相同.使用实体框架/linq-to-xml? 是否方便 解决方案 如果XML的格式正确 - 即,如果它使用DataSet使用的相同格式 - 您可以使用DataSet.ReadXml()读取它,然后使用所有正常的ADO工具将数据插入到您的数据库.虽然如果您实际上是从a DataSet中生成XML的,那么它确实有帮助明确照顾. 其他解决方案 我不知道您的意思是"方便",但这肯定是可能的. ,如果模式匹配,则可以很容易地将XElement节点映射到Linqtos
4 2024-01-19
编程技术问答社区
如何正确地打开FileStream以便与XDocument一起使用?
我想使用LINQ2XML将一些节点附加到XML文档.其他进程正在使用该文件,并且在我更新文件时,它们应该能够读取该文件.因此,我提出了这个解决方案,这显然不是正确的方法(方法doc.save()失败,并说另一个过程正在使用该文件): using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.Read)) { doc = XDocument.Load(new StreamReader(fs)); doc.Root.Add(entry); doc.Save(filename); fs.Close(); } 任何帮助都非常感谢. 解决方案 加载文档,关闭流,再次保存.这也意味着您可以以更简单的方式打开它:) XDocument doc; using (StreamReader reader = File.OpenText(
2 2024-01-09
编程技术问答社区
获取文件的相对路径?
我有一个名为settings.xml的文件,位于: c:\solution1\solution1\data\settings.xml 现在,我正在做: XDocument doc = XDocument.Load(@"c:\solution1\solution1\settings.xml"); 我无法弄清楚如何使用相对路径进行操作. 解决方案 如果您的意思是相对于可执行文件,则可以使用 string exeLocation = System.Reflection.Assembly.GetExecutingAssembly().CodeBase 注意经常建议的 System.Reflection.Assembly.GetExecutingAssembly().Location 将获得当前装配的路径 ,该路径可能不同,例如如果执行了影子副本. 您可以使用 string exeDir = System.IO.Path.GetDire
14 2024-01-07
编程技术问答社区
只用C#来比较2个XML文件
我正在寻找一种与XML文件进行比较的方法(下面的示例),并创建一个包含两个文件中差异的XPATH列表,以便然后我可以检查已更改的内容. 可以在LINQ中完成,或者我需要使用MS Diff补丁,我真的很想在C#中无需任何其他DLL. 或者我应该只是循环一个XML文件并将其与另一个文件进行比较,但是如果我这样做,我可能会错过任何新的或已删除的节点! 文件 1 1 TEST 1 A test
4 2024-01-07
编程技术问答社区
LINQ to XML和DataGridView
嗨,我正在尝试第一次使用datagridview. 这是我要做的: 我想使用它(尽管不需要DataGridView)来读取和显示XML文件的内容(此位在下面工作代码),但我想在表单上或DataGridView上有一个添加行按钮这是三个文本框的内容,并填充了新行的三列的内容.新行应附加到现有数据. 接下来,我想添加一个删除按钮以删除当前选择的行. 最后,我想要一个保存按钮,将DataGridView的内容导出回XML文件覆盖/更新现有的XML文件. 所以我坚持添加其他数据!但是,因为我目前没有删除的线索,或者保存我以为我会一口气问! ! 所以这是我必须读取XML文件的代码: XDocument xmlDoc = XDocument.Load(@"queues.xml"); var q = from c in xmlDoc.Root.Descendants("Queue") select new { Q
4 2024-01-07
编程技术问答社区
Linq to Xml VS XmlSerializer VS DataContractSerializer
在我的web method中,我得到了某些第三方C#实体类的对象.实体类不过是DataContract.该实体类非常复杂,具有各种类型的属性,有些属性也是集合的.当然,这些链接类型也是数据合同. 我想将该数据合同实体序列化为XML ,作为我的Web服务业务逻辑的一部分. 我不能直接使用DataContractSerializer(在Web方法中收到的对象上)仅仅是因为XML模式完全不同.因此,Datacontractserialializer生成的XML不会针对该模式进行验证. 我无法得出结论我应该遵循的实施方法.我可以想到以下实施方法: linq to xml - 这看起来还不错,但我需要为每种对象创建XML树(即类实例的元素或XML表示).由于有许多实体类,并且它们彼此相关,所以我认为手动编写XML元素是太多工作.此外,当实体类引入一些新属性时,我将不得不继续修改XML树. 不仅如此,我生成XML树的代码看起来几乎没有笨拙(至少在外观上),并且将来其他一些开发人员将
Nodes()与DescendantNodes()的使用情况?
我读到Nodes()发出所有节点,包括sub. 和DescendantNodes()相同但以递归方式. 但是 - 我找不到需要递归方式的任何情况... 我何时应该通过DescendantNodes()而不是Nodes()? 即: IEnumerable nodes =from nd in xmlTree.DescendantNodes() select nd; foreach (XNode node in nodes) Console.WriteLine(node); 输出: 问题: 当我可以使用Nodes()? 解决方案 descendantnodes 给您descendantnodes 您称之为节点的所有后代节点(儿童,孙子等). 想象一下,您有一个XML文档,要使用几个层次的嵌套进行处理,并且您想在各个级别上找到所有评论节点
4 2024-01-07
编程技术问答社区
使用linq to xml保存带有单引号的xml元素的属性值
如何使Xdocument对象保存单引号的元素的属性值? 解决方案 如果绝对有必要使用单语引号,则可以将XML文档写入字符串,然后使用字符串替换从单个引号更改为双引号. 其他解决方案 我不确定LINQ到XML的任何格式选项允许您指定.你为什么需要?这是一种非常糟糕的XML处理程序,它会关心它... 其他解决方案 只要您在匹配的对中使用单单和双引号,并且使用正确的嵌套,符合标准的XML处理器就不会在乎您使用哪种样式.您的问题表明,您打算使用不符合标准的工具(甚至不是XML意识)来处理XML输出.尽管我认识到工作情况和客户需求可能并不总是为您提供使用正确工具的选择,但这充其量只是一个挑剔的主张.我有同事使用SED和GREP筛选和修改XML文件,他们经常可以摆脱这种情况.但是,如果您有任何选择,我建议您在管道上一直使用XML感知工具处理XML文件,直到数据不再在XML中标记为数据.否则,与使用XML感知工具进行所有XML处理相比,将导致系统更脆弱. 如果您不能这样做
4 2024-01-07
编程技术问答社区
将XmlNode转换为XNode?
有人知道如何将System.xml.xmlnode转换为System.xml.linq.xnode? 解决方案 我从未尝试过,但是我的第一个想法是: XmlNode myNode; XNode translatedNode = XDocument.Parse(myNode.OuterXml); 其他解决方案 埃里克·怀特(Eric White)的博客是用于酷XML/Xlinq转换的地方.我知道这个问题早期的帖子,但我在查看其他一些Q时找到了它,所以也许人们仍然遇到了很多.他的博客具有大量优化的LINQ,就像我怀疑.parse()要求原始响应的.parse()呼吁不是很理想的,事实上,我知道不是. parse将要求将XML加载到一个镜头中,ERIC使用的扩展方法将使用XMLReader/Writer处理XML转换.这些方法能够流传输输入,因此,如果您的XML具有任何实体尺寸,则必须使用它们. 其他解决方案 我认为没有,但是您为什么需要?每个都是读取文档的不同方
20 2024-01-07
编程技术问答社区
列表中的项目没有被显示出来
它向我展示了idfichier,而nomclient show system.linq. 我想这显示了提名的类型. public static void generateCTAF(string pathXml, string outputPDF) { List fc = new List(); fc = getXmlFCtaf(pathXml); foreach (FichierCTAF f in fc) { Console.WriteLine("ID CTAF : {0} \n Nom Client : {1}\n \n", f.IdFichierCtaf, f.Clients.Select(y => y.NomClient )); } }
8 2024-01-07
编程技术问答社区
在Windows Phone 8中使用XDocument解析XML
任何人都可以告诉我如何使用Windows Phone 8 中的Xdocument以这种格式解析XML One Two Three Four 现在,我正在使用此代码,但无法将数据取出.我需要此XML的图像和名称. XDocument xdoc = XDocument.Parse(flickRes); var rootCategory = xdoc.Root.Elements("mak
4 2024-01-07
编程技术问答社区
用VB.NET和LINQ从网站上抓取XML
我一直在阅读《 LINQ文档》,并在堆栈溢出上查看一些以前的答案,但是我仍然对LINQ的工作方式感到困惑.我想从网站上获取一些数据,但我不知道如何使XML解析为字符串.这是我到目前为止所拥有的: Public Class Form1 'Dim xml As XDocument Dim ns As XNamespace Dim strXMLSource As String = "http://gd2.mlb.com/components/game/mlb/year_2018/month_03/day_29/gid_2018_03_29_anamlb_oakmlb_1/linescore.xml" Dim xml As XDocument =
2 2024-01-07
编程技术问答社区
使用LINQ插入新的XML节点
XML: 1 AAA 2 BBB 代码 var doc = XDocument.Load (Server.MapPath(".") + "\\Questions.config"); var elements = from element in doc.Descendants("Question") select new { Id = element.Element("Id").Value, Text = element.Element("Text").Value, Reserver = element.Element("Reserver") != null }; StringBuilder builder = new StringBuilder(); foreach (va
2 2024-01-07
编程技术问答社区
循环浏览XML文档并在C#变量中分配数据
我有一个XML文件,上面有几个标签: 这个想法是循环浏览所有sitecollection及其在XML文档中的子元素,并将信息保存在变量中.我遇到的问题是保存孩子元素的属性. 到目前为止,我有以下代码: class xmlreader { public static void Main() { XDocument xdoc = XDocument.Load("xmldocument.xml"); var result = new System.Text.StringBuilder(); var lv1s = from l
2 2024-01-07
编程技术问答社区
当XML父节点和子节点具有相同的名称时,如何使用LINQ to XML?
我正在尝试从Microsoft Dynamics环境中将一些SQL数据提取到XML,目前我正在使用linq到C#中的XML来读写XML文件.我需要的一个数据是从称为SecuritySubrole的视图.查看此视图​​的结构表明,还有一个列还名为SecuritySubrole.我的正常提取方法给了我这个XML. 886301 886317 1900-01-01T00:00:00-06:00 0 1900-01-01T00:00:00-06:00 0 1
0 2024-01-07
编程技术问答社区
如何从解决方案中的文件加载一个XML文件,用嵌入式资源构建?
这是我解决方案的轮廓: 我已经将构建设置为嵌入式资源,当我生成应用程序时,XML文件未显示在/release文件夹中.这是正确的,我想要这种行为. 现在,我正在尝试将该文件加载到Xdocument中,以便我可以将数据解析为 class Program { static void Main(string[] args) { Console.WriteLine("Parsing XML."); XDocument championXml = XDocument.Load("Champions.xml"); Console.ReadKey(); } } ,我会发现一个未找到错误的文件,因为它试图在发布文件夹的完整路径中找到XML文件. 我如何将这些数据正确加载到我的Xdocument? 解决方案 使用GetManifestResourceStream(): var asm =
0 2024-01-07
编程技术问答社区
如何实现一个简单的XPath查询
我们有一个XML文件,具有非常简单的实现的 ... 假设Xlink实现不会比这更复杂.但是,重要的一点是(在这种情况下,FirstChild)可以出现在文档中的任何位置,层次结构中的任何位置. 中的任何位置. 在XPath查找中,您可以通过使用以下表达式找到 的表达式所指的元素 //*[@id='ID1'] 使用 XDocument doc = XDocument.Load("file.xml"); var dest = xDoc.Descendants().Where(e => (string)e.Attribute("id") == "ID1").SingleOrDefault(); 我尚未实际测试过.但是总的来说,如果XML文档很大,LINQ方
0 2024-01-07
编程技术问答社区