Articles of xml

使用XDocument遍历节点的所有属性

我有以下存储表定义的xml。 如何使用XDocument(C#3.5)遍历传递的tablename的每一列(每个表只出现一次)及其属性 例如:如果用户通过CurrencySummary,我想读取每个列及其所有属性,如HeaderDescription,HeaderName等。 我试图通过以下方式实现这一目标:(编辑:根据Henk的建议) var doc = XDocument.Load(“TableDefinations.xml”); var cols = doc.Descendants(“CurrencySummary”).First(); foreach (var col in cols.Elements()) { foreach (XAttribute at in col.Attributes()) { //do something with the at.Name and at.Value } } 这是有效的方式还是有什么比这更好的?

使用reflection将XML转换为Object

如果你想解决问题,这里有一个很大的问题:D 首先,它不是关于序列化,好吗? 好吧,我的情况……我正在编写一个函数,我将作为参数传递给Xml(XmlDocument)和一个对象(Object)作为参考。 它将返回一个填充了Xml(XmlDocument)中的值的对象(被引用的对象)。 例如: 我有一个Xml像: 1 Daniel 我也有我的function public Object transformXmlToObject (XmlDocument xml, Object ref) { // Scroll each parameters in Xml and fill the object(ref) using reflection. return ref; } 我将如何使用它? 我会用这样的: [WebMethod] public XmlDocument RecebeLoteRPS(XmlDocument xml) { // class user receive the object converted from the function User user = new User(); […]

如何从XML模式创建SQL Server表模式? (使用.NET和Visual Studio 2008)

我有一个XML模式,我知道“xsd.exe”可以为它生成C#代码。 但我想知道是否可以借助此工具或其他工具从XSD自动创建MS SQL Server 2005+表。 顺便说一下,我没有得到“xsd.exe”生成的C#代码值得的东西。 CodeXS和xsd.exe生成的代码之间有什么区别?

如何处理特殊字符,如 什么时候序列化/反序列化xml对象?

我有一些商业对象来存储客户名称,有时名称包含一些特殊字符,如 ,  。 这些名称是从第三方导入的,我无法从源中删除有趣的字符。 应用程序将通过XmlSerializer序列化/反序列化客户对象,但奇怪的是,当我使用特殊字符序列化名称时,没有错误,结果将像这样Jim  。 但是当我反序列化输出xml时,我将得到一个exceptionThere is an error in XML document (3, 15) 。 那么如何在我的应用程序中处理这些特殊字符? 谢谢! 附上一些测试代码: public class Customer { public string Name; } class Program { public static T DeserializeFromXml(string settings) where T : class { var serializer = new XmlSerializer(typeof(T)); var reader = new StringReader(settings); var result = […]

如何在C#中使用XmlDsigC14NTransform类

我试图通过使用c#.net Framework 2.0的System.Security.Cryptography.Xml.XMLDsigC14nTransform类来规范化xml节点。 该实例需要三种不同的输入类型:NodeList,Stream和XMLDocument。 我尝试使用所有这些输入类型的转换,但我得到不同的结果。 我真正想要做的是规范化单个节点,但正如您在输出文件中看到的那样,输出不包含任何内部xml。 任何有关规范化XML节点的正确方法的建议都非常受欢迎。 最好, string path = @”D:\Test\xml imza\sign.xml”; XmlDocument xDoc = new XmlDocument(); xDoc.PreserveWhitespace = true; using (FileStream fs = new FileStream(path, FileMode.Open)) { xDoc.Load(fs); } // canon node list XmlNodeList nodeList = xDoc.SelectNodes(“//Child1″); XmlDsigC14NTransform transform = new XmlDsigC14NTransform(); transform.LoadInput(nodeList); MemoryStream ms = (MemoryStream)transform.GetOutput(typeof(Stream)); File.WriteAllBytes(@”D:\Test\xml imza\child1.xml”, ms.ToArray()); // canon XMLDocument […]

如何添加XML文件并将键值对读入字典?

我对编程很新。 我试图添加一个XML文件,以存储一些映射。 我想在字典中准备好这些键值对。 以下是我想的XML格式: 你能告诉我格式是否正确吗? 如果是,我怎么读到我的C#字典?

在MVC应用程序中显示/编辑xml

我需要在SQL数据库中维护一个xml列。 a)在我的详细信息页面中 – 我只想将此列显示为“漂亮”的xml – 就像浏览器一样。 因此,而不是一个大块的xml(例如onetwothreesomething else> )我希望它与新行上的每个新标签分开(例如 one two three something else> 和 b)在我的编辑页面中,我想要一个简单的表单,标签为标题(例如粗体),节点值为可编辑的文本框 – 但我希望这是从xml本身动态创建的。 我不想在代码中硬编码标签标签,而是循环遍历xml并动态获取它们。 我使用c#.net作为我的MVC应用程序,Sql Server作为数据库和LINQ to SQL。

使用XML序列化将属性放入不同的XML命名空间

我使用的是VSTS2008 + C#+ .Net 3.0。 我使用下面的代码来序列化XML,这是我当前的代码和序列化的XML文件。 我的目的是让MyInnerObjectProperties属于一个特殊的XML命名空间( http:// foo / 2009 )并将此命名空间作为默认命名空间。 任何想法如何实现这一点? 当前输出: Foo Type Goo Type 当前代码: public class MyClass { private MyObject[] _myObjectProperty; [XmlElement(IsNullable=false)] public MyObject[] MyObjectProperty { get { return _myObjectProperty; } set { _myObjectProperty = value; } } } public class MyObject { private MyInnerObject[] _myInnerObjectProperty; [XmlArrayItemAttribute(“MyInnerObjectProperty”, typeof(MyInnerObject), IsNullable=false)] public […]

容错XML阅读器

是否有人为.NET制作/制造/销售容错的XML阅读器? 是的,我知道,XML并不是为了在其中存在错误而应该被拒绝,如果它不是有效的……等等。 但遗憾的是现实世界并不完美,开发人员确实犯了错误,我仍然希望能够读取他们的提要,即使我在这里或那里错过了奇数元素,因为它没有正确编码或者在其中有其他错误。 所以请,没有答案“修复源”或“拒绝它”。 那么,是否有人能够恢复和处理XML文件中的常见错误?

根据属性将元素反序列化为属性

我想看看是否有一种简单的方法可以将填充了元素的XML文件反序列化回属性类,特别是元素属性“name”作为要附加的属性。 例如,我有一个XML文件格式,如下所示: 1 test 42 hello world 我想知道是否有一种简单的方法可以将其反序列化为类似于此格式的类: public class SomeObject { [XmlElement(“number_value_one”)] public Int32 NumberValueOne { get; set; } [XmlElement(“number_value_two”)] public Int32 NumberValueTwo { get; set; } [XmlElement(“string_value_one”)] public String StringValueOne { get; set; } [XmlElement(“string_value_two”)] public String StringValueTwo { get; set; } } 我知道格式不是最好的序列化等,但我不能改变文件格式为这个项目的格式。 目前我正在手工阅读每个元素的价值,这是很多代码和相当混乱。 要将它序列化回xml,我使用reflection来解决手工编写每个元素的需要。 但我想知道是否有一种简单的方法来处理这种格式。 并非所有元素都是string / int,有些是读取后要解析的自定义类型等。