Articles of xml

免费的C#XML Diff库或类

我正在寻找XML Diff类或库。 有我的要求: – 开源:) – 输出的对象模型(*) – 相当快(对于4mb XML) 我正在尝试使用MS XML Diff和Patch Tools,但我想获得一个具有2个XML文件差异的对象列表(而不是HTML标记)。 UPD:感谢您的所有回复。 我实施了自己的解决方案; 对Linq2Xml来说并不太难:) UPD2:对不起伙计们,但我现在不能在这里发布我的解决方案(我实际上还没有得到它,因为我最近改变了我的工作)。 我的解决方案也有一些特定的部分,所以它不能适合任何方式的常见问题。 主要建议是使用Linq2Xml,实现你的逻辑,玩得开心:)

使用ASP.NET(C#)解析多个XML文件并返回具有特定元素的文件

问候。 我正在寻找一种方法,用ASP.NET(C#)解析特定目录中的大量XML文件。 我希望能够从特定元素返回内容,但在此之前,需要找到元素之间具有特定值的内容。 示例XML文件1: Title 1 Content filter 示例XML文件2: Title 2 Content filter, different filter 示例案例1: 给我所有具有’filter’filter的XML。 案例2: 给我所有标题为“Title 1”的XML。 看起来,这似乎应该可以用LINQ,但我只看到有关如何在有一个XML文件时执行此操作的示例,而不是在存在多个时,例如在这种情况下。 我希望这可以在服务器端完成,这样我就可以在那一端缓存。 可以使用任何版本的.NET Framework的function。 谢谢! 〜詹姆斯

创建应用程序数据的快照 – 最佳实践

我们有一个使用.NET FW 4.0在C#中开发的文本处理应用程序,其中管理员可以定义各种设置。 所有这些“设置”数据都驻留在大约50个具有外键关系和Identity主键的表中(我认为这会使它变得棘手)。 整个数据库不超过100K记录,平均表有大约6个短列。 该系统基于MS SQL 2008 R2 Express数据库。 我们需要创建所有这些数据的快照,以便系统管理员可以随时回滚到其中一个快照。 我们只需要保留最后5个快照。 必须从应用程序GUI开始创建快照,因此必要时必须回滚到任何快照(由于拒绝直接访问数据库,因此不允许使用SSMS)。 系统仍在开发中(我们真的完成了吗?)这意味着新表和列会多次添加。 因此,我们需要一个可以自动处理更改的强大方法(在插入/更改列之后挖掘代码是我们想要避免的,除非没有其他方法)。 最好的方法是告诉“我想创建名称以’Admin’开头的所有表的快照”。 显然,这是一项数据库密集型任务,但由于它仅在紧急情况下使用,这是我不介意的事情。 我也不介意是否发生表锁,因为在创建或回滚快照的过程中,没有人会尝试使用这些表。 问题可分为两部分: 创建快照 回滚到快照 关于问题#1。 我们可能有两种选择: 将数据导出为XML(文件或数据库列) 将SQL中的数据复制到相同或不同的表中(例如,再次使用与前缀为“Backup”的原始表相同的名称创建相同的表结构)。 关于问题#2。 我看到的最大问题是如何将所有数据重新导入到外键关联表中,这些表使用IDENTITY列进行PK生成。 我需要删除所有受影响的表中的所有数据,然后重新导入所有数据,同时暂时放宽FK约束并关闭身份生成。 加载数据后,我应检查FK约束是否仍然正常。 或许我应该找到一种加载表的逻辑方式,以便在加载时可以保留约束检查(因为我们没有无法管理的表数,这可能是一个可行的解决方案)。 当然,出于显而易见的原因,我需要在单个事务中进行所有删除和重新加载。 我怀疑可能没有基于SQL的纯解决方案,尽管SQL CLR可能有助于避免将数据移出SQL Server。 我们面临同样的问题吗? 也许有人成功解决了这样的问题? 我不指望一步一步的指导。 任何有关从何处开始,获取哪些路径(导出到RAW XML或在数据库中保存快照或两者)的帮助,优点/缺点都非常有用。 谢谢你的帮助和时间。 丹尼尔

通过c#解析csproj – 无法解析ItemGroup

我试图从csproj文件中获取所有的dll名称,但无法得到任何东西! 所以,我尝试使用liq查询从ItemGroup标签获取al元素: var elem = doc.Descendants(“Project”).Where(t => t.Attribute(“ToolsVersion”)!=null) .Elements(“ItemGroup”).Elements(“Reference”).Where(r => r.Attribute(“Include”) != null); var attrs = elem.Attributes(); Console.WriteLine(attrs.Count()); foreach (var e in attrs) { Console.WriteLine(e); } 这是我的xml csproj文件。 我剪了一些不完整的文字)) icon.ico 4.0 请帮我拿这个名单! 我做错了什么? 谢谢。

在XML文件中包含二进制数据

我们需要在xml文件中上传附件(例如word文档)。 有没有办法附上这个? 任何使用c#的示例代码都将受到赞赏。

使用具有多个后代的Linq解析XML

我有一个问题来解析多个XML字段 这是XML的风格: 1 Mike History Maths English … 我可以解析像student_id和student_name这样的简单字段,但是当同一个字段有多次重复时我不知道该怎么做:/这是我解析的源代码。 我做了两节课: 主题包含学校科目的名称 包含id和名称以及类Subject的列表的学生。 现在源代码: List L1 = new List(); XDocument doc = XDocument.Load(s); var q = from b in doc.Descendants(“student”) select new { s_id = (string)b.Element(“student_id”), s_name = (string)b.Element(“student_name”), s_subject = (Subject)b.Elements(“school_subject”) }; foreach (var p in q) { L1.Add(new Student() { id = p.s_id, name […]

控制WCF XML输出中的命名空间前缀

我的WCF服务的当前输出如下(只有一部分显示如下): STATE_CD 1 STATE_CD_TXT Alabama STATE_CD_SHORT_TXT AL 在该示例中,对于每个US状态重复“RowDetail”元素。 我有两个问题: 如何删除标签中的“a:”前缀。 我假设我需要更改xmlns设置,但我不知道如何在不抛出错误的情况下执行此操作。 我查看了其他线程,但无法使其工作。 是否可以从输出中删除无关元素,即“行”和“字段”? 我理解为什么他们在那里 – 这是由于我如何设置我的课程(下面发布),但看看IMO是很麻烦的。 类别: [DataContract] public class Results2Detail { [DataMember] public RowDetail[] Rows; } [DataContract] public class RowDetail { [DataMember] public FieldDetail[] Fields; } [DataContract] public class FieldDetail { [DataMember] public String name; [DataMember] public String value; }

如何使用LINQ C#正确搜索xml文档

嘿伙计和女孩我很难搞清楚如何正确搜索xml文档。 我一直在阅读其他forms如今疯狂,但似乎无法理解它。 希望有人可以给我一些更详细的信息,告诉我如何以正确的方式使用LINQ。 这是XML文件。 我要完成的是返回与客户名称匹配的每个元素的所有值。 这是我的代码。 IEnumerable test = doc.Root.Descendants() .Where(nodeName => nodeName.Name == “Client” && nodeName.Descendants().Any(x => x.Name == “Firstname” && x.Value == “someguy”)); foreach (XElement m in test) { MessageBox.Show(m.ToString()); } 真的很感激帮助。 如果可能的话,还请解释一下,如果你愿意,使用LINQ的想法就像格式一样。 不确定如何解释我在问什么,但大多数情况下只是更了解它的工作方式或格式等… 编辑 我已经尝试了解决方案,但似乎没有任何东西可行。 请告诉我这里我做错了什么。 private void button2_Click(object sender, EventArgs e) { string seach = txtSearch.Text; XDocument doc = XDocument.Load(@”C:\users\tim\desktop\test.xml”); var […]

如何使用c#从xml获取节点 – 我做错了什么?

命令空间和XML仍然让我感到困惑。 这是我的XML(来自SOAP请求) 我试图从SOAP响应中提取实际的XML部分(从Foo元素开始): var nsmgr = new XmlNamespaceManager(document.NameTable); nsmgr.AddNamespace(“soap”, “http://schemas.xmlsoap.org/soap/envelope/”); nsmgr.AddNamespace(“”, “http://tempuri.org/”); nsmgr.AddNamespace(“”, “http://tempuri.org/XMLSchema.xsd”); var xml = document.DocumentElement .SelectSingleNode(“Foo”, nsmgr) .InnerXml; 但SelectSingleNode返回null。 我已经尝试了一些不同的变化,但无法使任何工作。 我不明白的是什么?

如何将数据从Windows窗体保存到XML文件?

我非常肯定我必须首先创建一些XML文件的模型,对吧? 任何帮助将不胜感激。