Tag: xml

XNode.DeepEquals意外返回false

使用XNode.DeepEquals()来比较xml元素,它意外地在两个我认为应该等效的xml文档上返回false 。 例 var xmlFromString = XDocument.Parse(“”); var xmlDirect = new XDocument(new XElement( XNamespace.Get(“someNamespace”) + “someXml”)); Console.WriteLine(xmlFromString.ToString()); Console.WriteLine(xmlDirect.ToString()); Console.WriteLine(XNode.DeepEquals(xmlFromString, xmlDirect)); Console.WriteLine(xmlFromString.ToString() == xmlDirect.ToString()); 产量 False True 字符串被认为是相同的,但XML树不是。 为什么?

utf-8大写?

这更像是一个我想做的化妆品变化,我想知道如何使用UTF-8大写而不是utf-8小写生成生成的xml文件? XmlWriterSettings settings = new XmlWriterSettings(); settings.Encoding = Encoding.UTF8; settings.Indent = true; settings.IndentChars = “\t”; XmlWriter writeXML = XmlWriter.Create(“test_file.xml”, settings); writeXML.WriteStartDocument(false); writeXML.WriteComment(fileLicense); writeXML.WriteStartElement(“templates”); writeXML.WriteAttributeString(“xmlns”, “xsi”, null, “http://www.w3.org/2001/XMLSchema-instance”); writeXML.WriteAttributeString(“xsi”, “noNamespaceSchemaLocation”, null, “test_file.xsd”); writeXML.WriteEndElement(); writeXML.WriteEndDocument(); writeXML.Close();

inheritance类的输出无效

我有2节课 [DataContract, KnownType(typeof(B))] public class A { [DataMember] public string prop1 { get; set; } [DataMember] public string prop2 { get; set; } [DataMember] public string prop3 { get; set; } } [DataContract] public class B : A { [DataMember] public string prop4 { get; set; } } 以及以下方法: List BList = new List(); BList […]

两次序列化XML相同的标记

我有问题: 我必须将类序列化为XML文件。 但是必须使用相同的名称命名两个属性: 期望的xml: AAA BBB 我不需要将它反序列化回对象。 码: public class Header1 { [XmlElement(“Tag1”)] public String Tag1 { get; set; } } public class Header2 { [XmlElement(“Tag2”)] public String Tag2 { get; set; } } public class Test { [XmlElement(“HeaderText”)] public Header1 Header1 { get; set; } [XmlElement(“HeaderText”)] public Header2 Header2 { get; set; } } […]

XMLDocument,innerxml和outerxml之间的区别

OuterXml – 获取表示当前节点及其所有子节点的XML标记。 InnerXml – 获取仅代表当前节点的子节点的XML标记。 但是对于XMLDocument来说真的很重要吗? (结果明智,我知道这没关系,但逻辑上?)。 例: XmlDocument doc = new XmlDocument(); doc.LoadXml(“” + “Pride And Prejudice” + “”); string xmlresponse = doc.OuterXml; string xmlresponse2 = doc.InnerXml; 简单来说,虽然xmlresponse和xmlresponse2在上面的代码中都是相同的。 我应该更喜欢使用OuterXml还是InnerXml ?

XML序列化错误:2种类型都使用XML类型名称“关系”,来自命名空间”

我在通过XML序列化时遇到问题,因为2个clases使用一个名为Relationship的类(尽管是不同的类!)。 我尝试使用XML属性用另一个名称装饰其中一个类,但它仍然给我以下错误: {“Types’SiteServer.Relationship’和’LocalServer.Relationship’都使用XML类型名称’Relationship’,来自命名空间”。使用XML属性为类型指定唯一的XML名称和/或命名空间。”} 这是我的2个class,有谁知道为什么? 我使用错误的属性? 它似乎忽略了它:-) public class SiteServer { [XmlRoot(“SiteServerRelationShip”)] public class Relationship { public string type { get; set; } } public string Name { get; set; } public Relationship Relate = new Relationship(); } public class LocalServer { public class Relationship { public string type { get; set; } } public string […]

如何获得XDocument的独立副本?

我正在尝试创建一个新的XDocument,如下所示: var xmlString = _documentDictionary[documentKey].ToString(SaveOptions.DisableFormatting); XDocument xml = XDocument.Parse(xmlString); 我现在有xml ,虽然它是一个独立的文档实例,因为我从原始文档中提取了字符串并从中创建了一个新的字符串。 但是当我修改xml然后检查_documentDictionary[documentKey]我可以看到原始文档也被修改了。 如何从我现有的系列中获取新的独立文档? 注意: 我试过这些但它不起作用: var xmlString = _documentDictionary[documentKey].ToString(SaveOptions.DisableFormatting); var copyDoc = new XDocument(xmlString); 和 var copyDoc = new XDocument(_documentDictionary[documentKey]);

将单个XElement转换为对象

我有一个XElement看起来像这样: 然后我有一个看起来像这样的课: public class ProductAttribute { public string Flag { get; set; } public string Sect { get; set; } public string Header { get; set; } public string Body { get; set; } public string Extrainfo { get; set; } } 如何将此XElement转换为ProductAttribute对象?

错误: – XmlReader状态应该是XDocument.Load上的Interactive

我收到以下错误: – System.InvalidOperationException:XmlReader状态应为Interactive。 System.Xml.Linq.XDocument.Load(XmlReader reader,LoadOptions选项)中的System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r,LoadOptions o) 在以下代码中。 有谁能指出我在这里做错了什么? static XDocument GetContentAsXDocument(string xmlData) { XmlDocument xmlDocument = new XmlDocument(); if (!string.IsNullOrEmpty(xmlData)) { xmlDocument.LoadXml(xmlData); return xmlDocument.ToXDocument(); } else { return new XDocument(); } } /// /// Converts XMLDocument to XDocument /// /// /// public static XDocument ToXDocument( this XmlDocument xmlDocument ) { using( var nodeReader = […]

从http地址读取XML文件

我需要使用c#/ .net从类似的源读取一个xml文件: https://10.1.12.15/xmldata?item=all : https://10.1.12.15/xmldata?item=all 这基本上只是一个xml文件。 StreamReader不喜欢这样。 阅读该链接内容的最佳方式是什么? 该文件看起来像这样: – – CZ325000123 ProLiant DL380p Gen8 BBBBBBGGGGHHHJJJJ 1 0000-000-222-22222-333333333333 – …