Tag: xml

XmlSerializer:将类属性序列化为自定义子元素的属性

我正在使用XmlSerializer 。 我的课: [Serializable] [XmlRoot(ElementName=”MyClass”)] public class MyClass { public string Value; } 我想序列化它,以便Value最终作为名为(例如)“Text”的子元素的属性。 期望的结果: 但是NOT (这会将Value标记为XmlAttribute的效果) 而不是 (这将标记Value作为XmlElement的效果): 3 我该如何实现这一目标? 我知道我可以将Value的类型从string更改为另一个可序列化的自定义类。 不幸的是,我有很多这样的属性,所以我需要创建几十个小类。 有没有更快的解决方案? 编辑: 回应你的意见: 不,并非每个属性都必须序列化为名为“Text”的子元素。 Subelement的名称是独特且明确的。 示例输出XML: blahblahblah 样本类: ! [XmlRoot(ElementName=”Visibility”)] public class Visibility { [XPath(“/site@visible”)] // if only this was possible! public string OnSite { get { return SiteVisible ? “yes” : […]

使用Linq to XML选择Xml节点

我的Xml文件: 1f323c97-2015-4a3d-9956-a93115c272ea Aria Stark 1999-01-01T00:00:00 c9c326c2-1e27-440b-9b25-c79b1d9c80ed John Snow 1983-01-01T00:00:00 我的尝试: XElement toEdit = (XElement)doc.Descendants(“ArrayOfCustomer”) .Descendants(“Customer”) .Where(x => Guid.Parse((x.Descendants(“CustomerId”) as XElement).Value) == customer.CustomerId) .First(); 这会引发以下exception: Object reference not set to an instance of an object. 1)不是x是XElement吗? 2)这是一个适合选择Xml节点的lambda吗? 3)当然,您如何根据CustomerId找到此节点?

通过C#LINQ to XML

我是LINQ的新手。 我理解它的目的。 但我无法弄明白。 我有一个XML集,如下所示: 1 John Smith john@example.com 2 Bill Young bill@example.com 我已将此XML加载到XDocument中: string xmlText = GetXML(); XDocument xml = XDocument.Parse(xmlText); 现在,我正在尝试将结果转换为POCO格式。 为了做到这一点,我目前正在使用: var objects = from results in xml.Descendants(“Results”) select new Results // I’m stuck 如何通过LINQ获取Result元素的集合? 我对代码中此时导航XML结构感到特别困惑。 谢谢!

通过内部文本在xml中查找元素

我试图在内部文本的基础上从文件的根元素搜索xml元素。 我试过这个,但没有工作: rootElRecDocXml.SelectSingleNode(“/ArrayOfRecentFiles[name='”+mFilePath+”‘]”); 我知道旧学校的方式逐个遍历所有文件,但我不想这样做。 请注意:我的根元素名称是ArrayOfRecentFiles ,我的子元素名称是RecentFile

“表达式必须评估为节点集。”

我有个问题 我的XML文件在这里; Tarih 24.07.2013 18:59:45 USD 1.9120 1.9220 EUR 2.5280 2.5430 我如何解析这个XML文件 我编码的方式,但我得到一个解析错误信息; if (tip == DövizKuruTipi2.Alış) Line 44: return Decimal.Parse(doc.SelectNodes(“//ALTINKAYNAK/DOVIZ/ADI=” + dovizKuru2 + “/ALIS”)[0].InnerText.Replace(‘.’, ‘,’)); 表达式必须评估为节点集

将(嵌入式资源)架构添加到XmlReaderSettings而不是Filename?

我正在编写一个解析Xml文件的应用程序。 我有架构(.xsd)文件,我在尝试反序列化之前用它来validationXml: XmlReaderSettings settings = new XmlReaderSettings(); settings.Schemas.Add(null, “./xml/schemas/myschema.xsd”); settings.ValidationType = ValidationType.Schema; XmlReader reader = XmlReader.Create(xmlFile, settings); XmlDocument document = new XmlDocument(); document.Load(reader); ValidationEventHandler eventHandler = new ValidationEventHandler(settings_ValidationEventHandler); document.Validate(eventHandler); 请注意,参数*。/ xml / schemas / myschema.xsd“是.xsd相对于程序执行的路径。 我不想使用文件名/路径,而是宁愿将.xsd文件编译为我项目中的嵌入式资源(我已经添加了.xsd文件并将Build Action设置为Embedded Resource)。 我的问题是……如何将嵌入式资源架构添加到XmlReaderSettings架构列表中? settings.Schemas.Add有4种重载方法,但没有一种方法将嵌入资源作为参数。 它们都采用模式文件的路径。 我过去曾使用嵌入式资源来动态设置标签图像,所以我对使用嵌入式资源有些熟悉。 看看我的其他代码看起来我最终得到的是一个包含内容的Stream : System.Reflection.Assembly myAssembly = System.Reflection.Assembly.GetExecutingAssembly(); Stream myStream = myAssembly.GetManifestResourceStream(resourceName); 我假设嵌入的.xsd也将作为流读入,所以这会缩小我的问题。 当我引用包含架构而不是文件名的流时,如何将架构添加到XmlReaderSettings?

LINQ to XML:什么是上下移动节点的最有效方法

我需要在某些节点之前和之后移动兄弟节点。 这是我正在使用的代码 Overview Testing Performance Braking 我想在概述上方的测试中移动选项卡。 我如何使用linq to XML来解决这个问题?

在没有标记的情况下保存数据集ds.WriteXml(…)?

我可以在没有任何问题的情况下读取和写入XML文件到数据集中,但是如果我使用ds.WriteXml(“Testdata.xml”)保存DataSet, ds.WriteXml(“Testdata.xml”)额外的Tag …….是generrated。 是否有可能压制这个标签一般?

从资源中读取xml文件

我正在尝试加载一个xml文件,该文件作为资源存储在我的C#项目中,因此我可以执行各种LINQ查询。 但是在运行时会抛出“路径中的非法字符”exception。 这是我加载文件的方式: XDocument doc = XDocument.Load(MyProject.Properties.Resources.XMLFile);

企业库滚动平面文件没有滚动

我正在尝试轮换日志文件,每周一天,此配置文件无法正常工作。 如果我将其更改为旋转而不是午夜到分钟,则仅记录一个持续一分钟的单个文件。 没有生成新文件。 最新版本的entreprise库是否有任何已知错误,专注于滚动平面文件无法正常工作? 我当前的配置有问题吗? 谢谢!