Tag: xml

Linq到Xml,保持XDocument加载?

假设我正在制作一个WinForms程序,它将在幕后使用XML文档作为持久性机制…… 以下两种方法的优缺点是什么? 在每个方法调用中加载XDocument: public class XmlFoosRepository { string xmlFileName; public XmlFoosRepository(string xmlFileName) { this.xmlFileName = xmlFileName; } public int AddFoo(Foo foo) { var xDoc = XDocument.Load(xmlFileName); // Always call Load() // … xDoc.Save(xmlFileName); return foo.ID; } public IEnumerable<Foo> GetFoos() { var xDoc = XDocument.Load(xmlFileName); // Always call Load() // … return foos; } } 要么 […]

使用DTDvalidation – 强制关闭连接

我正在validation文档中带有DTD的文档,该文档不在我的机器上,它存储在互联网上。 我目前收到以下exception System.Xml.XmlException: An error has occurred while opening external DTD ‘http://xml.cxml.org/schemas/cXML/1.2.020/cXML.dtd’: Unable to connect to the remote server —> System.Net.WebException: Unable to connect to the remote server —> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host 216.109.104.11:80 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket […]

WebAPI 2.0 Post未反序列化List 属性

我已经回顾了我在这里可以找到的所有类似的文章,并尝试了任何看起来可能没有成功的事情(因为我现在正在问这个问题)。 我有一个带有POST操作的webAPI 2.0控制器,它接受一个类型为Reservation的对象。 除其他外,该对象包含名为Items的属性,该属性属于EquipmentItems类型。 可以想象,这是一个List属性。 我发送预订对象(使用PostAsJsonAsync(“api/Reservation”, reservation).Result如果它对任何人PostAsJsonAsync(“api/Reservation”, reservation).Result重要)。 当我进入API控制器时, Reservation对象完全填充了除EquipmentItems属性之外的所有内容。 本着完全公开的精神, Reservation类中的Items属性实际上被定义为List,其中T是IItemData接口。 EquimpentIteminheritance自IItemData ,因此不确定这是否会使问题复杂化。 本机控制器反序列化器可以不处理T是接口的List吗? 我所知道的是将List定义为常规数组。 这非常有效,但我有其他要求导致我使用List。 有关如何正确反序列化List属性的任何建议?

如何在C#中读取XML中的键值

我有一个名为”ResourceData.xml” xml格式文件。 Publish Resources to Custom Page 现在我想编写一个函数,它将键”name”作为输入并返回其value元素数据,在上面的例子中,如果我们传递键名”customPageTitle” ,它将返回”Publish Resources to Custom Page” “customPageTitle” ,我认为将打开XML文件,然后它将读取。 请建议!!

C#代码或算法快速计算大字符串之间的距离?

嗨,谢谢你的期待! 背景 我有一个包含1900个节点的XML文件,这些节点本身包含大约3400个字符的编码数据字符串。 作为我正在开发的应用程序的用例的一部分,我需要能够在运行时获取“基准”字符串,并从XML文件中找到最接近的匹配项。 请注意,XML与应用程序没有密切关系,我可能会继续使用SQL,但就今天而言,我只需要一个容易存储数据并certificate概念的地方。 我使用的是.NET 4.0,C#,表单app,LINQ等。 题 我如何找到最接近的匹配? 海明? 莱文斯坦? 网上有很多代码样本,但大多数是针对小字符串比较(“ant”与“阿姨”)或完全匹配。 我很少有完全匹配; 我只需要最接近的比赛。 提前致谢! 马特

使用foreach循环和XmlNodeList C#将新节点附加到节点列表

目前我正在处理这是XML的类型: XML FILE 参考XML文件,我想检查节点,如果找不到节点,我必须将节点附加到文件。 我试过以下代码: private void button12_Click(object sender, EventArgs e) { // XmlNodeList func_name_value = doc.GetElementsByTagName(“FUNCTION-NAME-VALUE”); XmlNodeList list_def_ref = doc.GetElementsByTagName(“DEFINITION-REF”); foreach (XmlNode nodeDef in list_def_ref) { if (nodeDef.InnerText == “/AUTOSAR/Com/ComConfig/ComSignal”) { if (nodeDef.ParentNode.HasChildNodes) { XmlNodeList list = nodeDef.ParentNode.ChildNodes; foreach (XmlNode node in list) { if (node.Name == “PARAMETER-VALUES”) { XmlNodeList param_list = node.ChildNodes; foreach […]

Xml反序列化 – 将两个元素合并为一个List 对象

我有一个XML文档,并使用反序列化,有没有办法将两个元素组合成一个对象? XML示例: 3 4 我想创建一个包含项目3和4的列表(类型为Parameter)。 我尝试过使用XmlArrayItem,例如: [XmlArrayItem(“Parameter1”)] [XmlArrayItem(“Parameter2”)] [XmlArray] public Parameter[] Parameters; // have also tried this as public List Parameters = new List(); 我尝试过使用XmlElements(但我无法弄清楚如何将它们组合起来): [XmlElement(“Parameter1”)] public List Parameters = new List(); 有没有办法做到这一点,而不只是创建两个单独的列表,并在以后组合它们? 请注意,更改XML格式不是一种选择。

使用LINQ选择随机XML节点

我是LINQ的新手,遇到了问题。 我有一个看起来像这样的文件: The first test gallery. Picture of a cat and Wilford Brimley. Can you tell the difference? The second test gallery. A large image of Wilford Brimley and various cats. The cats will be on the right. 无论如何,我知道我想要的画廊的ID,但我想随机选择其中一个图像。 是否有可以执行此操作的LINQ语句?

为Web Service创建XML字符串

我正在向一个Web服务发送一个请求,该服务需要一个包含XML的字符串,我已经提供了一个XSD。 我已经运行了xsd.exe并基于此创建了一个类,但不确定创建要发送的xml字符串的最佳方法,例如流,XMLDocument或某种forms的序列化。 UPDATE 我在这里找到了这个 public static string XmlSerialize(object o) { using (var stringWriter = new StringWriter()) { var settings = new XmlWriterSettings { Encoding = Encoding.GetEncoding(1252), OmitXmlDeclaration = true }; using (var writer = XmlWriter.Create(stringWriter, settings)) { var xmlSerializer = new XmlSerializer(o.GetType()); xmlSerializer.Serialize(writer, o); } return stringWriter.ToString(); } } 这让我可以控制标签属性。

使用XElement保存XML文件时,文件中的对齐也会发生变化,如何避免?

我在用 XElement root = XElement.Load(filepath); 加载XML文件,然后找到我需要的东西。 IEnumerable commands = from command in MyCommands where (string) command.Attribute(“Number”) == Number select command; foreach (XElement command in commands) { command.SetAttributeValue(“Group”, GroupFound); } 完成更改后,我使用以下代码保存文件。 root.Save(filepath); 保存文件时,XML文件中的所有行都会受到影响。 默认情况下,Visual Studio会对齐所有行,但我需要保存原始文件格式。 除了Group属性值之外,我无法更改文档的任何部分。 command.SetAttributeValue(“Group”) attributes.