Tag: xml deserialization

如何只将大型xml文件的一部分反序列化为c#类?

我已经阅读了一些关于如何反序列化xml的post和文章,但仍然没有想出我应该编写代码以满足我的需求的方式,所以..我为另一个关于反序列化xml的问题道歉)) 我有一个大的(50 MB)xml文件,我需要反序列化。 我使用xsd.exe来获取文档的xsd模式,而不是自动生成我放入项目的c#classes文件。 我想从这个xml文件中获取一些(不是全部)数据并将其放入我的sql数据库中。 这是文件的层次结构(简化,xsd非常大): public class yml_catalog { public yml_catalogShop[] shop { /*realization*/ } } public class yml_catalogShop { public yml_catalogShopOffersOffer[][] offers { /*realization*/ } } public class yml_catalogShopOffersOffer { // here goes all the data (properties) I want to obtain )) } 这是我的代码: 第一种方法: yml_catalogShopOffersOffer catalog; var serializer = new XmlSerializer(typeof(yml_catalogShopOffersOffer)); var […]

从Web api反序列化XML数组

首先,我按照这里给出的答案,但我仍然无法得到以下工作。 我正在从Web API检索XML,返回的结果如下: 000.000 AAA-000/L 01/01/2015 John Doe 000.000 1 Summer 123456 John Doe 2015 000.000 AAA-000/L 01/01/2015 John Doe 000.000 1 Summer 123456 John Doe 2015 我正在尝试将其反序列化为一系列学生。 我的学生class级定义如下: public class Student { [System.Xml.Serialization.XmlElement(“accumulated_tuiton”)] public double AccumulatedTution { get; set; } [System.Xml.Serialization.XmlElement(“net_tuiton”)] public double NetTuiton { get; set; } [System.Xml.Serialization.XmlElement(“course_id”)] public string CourseID { get; […]

XmlSerializer – 包含text + xml + text的节点

我有一个节点,可以包含text或xml,text + xml或text + xml + text。 我解决使用的前两种情况 [XmlAnyElement] [EditorBrowsable(EditorBrowsableState.Never)] public XmlElement[] TextNodes { get; set; } [XmlText] public string InnerText { get; set; } [XmlIgnore] public string Text { get { return String.Format(“{0}{1}”, InnerText, TextNodes.Aggregate(String.Empty, (current, documentNode) => current + documentNode.OuterXml)); } } 但是,在xml之后有文本的最后一种情况我无法找到解决方案。 XML somtext moretext even more text 我的代码将在Text中输出: sometext moretext 我需要: […]

如何使用XmlSerializer使用命名空间反序列化xml文档?

使用XmlSerializer反序列化文档时,未正确反序列化 文献 Some Value Some other value 类 [XmlRoot(Namespace = “urn:some-namespace”)] public class ElementA { [XmlElement] public string Prop1 { get; set; } [XmlElement] public string Prop2 { get; set; } } 在反序列化结束时,Prop1和Prop2都为空。 我无法更改文档的结构以摆脱命名空间,因此我需要正确地处理反序列化。 该文件已经简化以便复制 我应该如何设置ElementA上的属性来正确处理反序列化? – 这是重现问题的完整代码 – namespace ConsoleApplication1 { using System; using System.IO; using System.Xml.Serialization; public class Program { [XmlRoot(Namespace = “urn:some-namespace”)] […]

使用C#中的德语小数分隔符对XML进行XML反序列化

我正在尝试从“德语”xml字符串反序列化Movie对象: string inputString = “” + “” + “5” + “1,99” // <– Price with German decimal separator! + "”; XmlSerializer movieSerializer = new XmlSerializer(typeof(Movie)); Movie inputMovie; using (StringReader sr = new StringReader(inputString)) { inputMovie = (Movie)movieSerializer.Deserialize(sr); } System.Console.WriteLine(inputMovie); 这里的Movie类供参考: [XmlRoot(“movie”)] public class Movie { [XmlAttribute(“title”)] public string Title { get; set; } [XmlElement(“rating”)] public […]

使用C#将xml反序列化为超类对象

我正在创建一个程序,允许用户使用4个基本操作定义公式:使用XML进行加,减,除,多。 让我们举一个例子:用户想要定义像(a + b) x (c + d)这样的公式。 xml的格式如下: 编辑我实现了这一点 编辑解决。 非常感谢Yaniv的建议。 我的解决方案如下: 1 2 3 4 类 //root element public class xPlugins { [XmlElement(“xPlugin”, typeof(xPlugin))] public xPlugin[] Plugin { get; set; } } public class xPlugin { [XmlElement(“Multiple”, typeof(Multiple))] [XmlElement(“Add”, typeof(Add))] [XmlElement(“Subtract”, typeof(Divide))] [XmlElement(“Divide”, typeof(Divide))] [XmlElement(“Operator”, typeof(Operand))] public Calculator calculator { get; set; } […]

C#XML在xml标记之后将注释插入XML

我正在使用C#对象来序列化/反序列化XML。 我想在序列化时对XML文件添加注释,这个注释将是标准xml标签之后的基本 此注释不需要反序列化,它是一个基本注释,用于指示创建xml文件的产品和版本。

XmlSerializer – 将不同的元素反序列化为相同元素的集合

我有以下XML部分,我无法更改架构。 NUMBER,REGION,MENTION,FEDERAL是列: 我想将它反序列化为public List Columns {get;set;}属性。 因此元素名称将转到Column.Name。 列类: public class Column { //Name goes from Element Name public string Name {get;set;} [XmlAttribute(“WIDTH”)] public int Width {get;set;} } 是否可以使用XmlSerializer类?

由于格式化,XML反序列化在十进制解析时崩溃

当我尝试将XML解析为对象时,我得到一个System.FormatException。 据我所知,这是由于System.Xml.Serialization.XmlSerializer.Deserialize中使用的文化,期望一个点作为十进制字符,但xml包含一个逗号。 该对象如下所示: public sealed class Transaction { [XmlElement(“transactionDate”)] public DateTime TransactionDate { get; set; } [XmlElement(“transactionAmount”)] public decimal Amount { get; set; } [XmlElement(“transactionDescription”)] public string Description { get; set; } [XmlElement(“transactionType”)] public int Type { get; set; } public static Transaction FromXmlString(string xmlString) { var reader = new StringReader(xmlString); var serializer = new […]

如何将具有不同名称但具有相同属性集的xml元素反序列化为类型化数组/集合

这是我试图反序列化的XML文件的一部分: … 7 94 LPS 120 V 540 222 1758 W 400 mm 150 mm 1348 W 475 mm 1 Cooling <By Category> 108 108 50 VA … … 这些是我用来反序列化它的类: [XmlType(AnonymousType = true)] [XmlRoot(“entry”, Namespace=”http://www.w3.org/2005/Atom”)] public class PartAtom { … [XmlElement(“family”, Namespace=”urn:schemas-autodesk-com:partatom”)] public Family Family { get; set; } } public class Family { [XmlAttribute(“type”)] […]