C#学习教程:xml序列化 – 删除命名空间分享


xml序列化 – 删除命名空间

我正在使用c#序列化一个对象。 我得到的结果如下所示

     <Users  

但我希望得到这种格式的结果。

      

这是我的代码

 public class Users { [XmlArray("Users")] public List ListData { get; set; } public string GetXML() { System.IO.MemoryStream ms = new System.IO.MemoryStream(); XmlSerializer sr = new XmlSerializer(typeof(Users)); sr.Serialize(ms, this); ms.Position = 0; return System.Text.Encoding.UTF8.GetString(ms.ToArray()); } } public class User { [XmlAttribute("Id")] public Int64 UserId { get; set; } [XmlAttribute("CreateDate")] public string CreateDate { get; set; } [XmlAttribute("LastSendDate")] public string LastSendDate { get; set; } } 

你应该简单地用[XmlElement("User")]替换[XmlArray("Users")] [XmlElement("User")]

此属性告诉序列化程序,您要将所有这些用户项目存储在特定节点“Users”下,如果将其替换为XmlElement ,则serialzer将根据您的需要将所有这些用户内联(位于第一个Users标记下)存储。

至于xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"名称空间。 它们是自动添加的,但它们是无害的,因为所有元素都在默认命名空间中。 您可以将以下代码添加到XmlSerializer调用中,以便删除它们:

 var xns = new XmlSerializerNamespaces(); var serializer = new XmlSerializer(users.GetType()); xns.Add(string.Empty, string.Empty); //... serializer.Serialize(stream, users, xns); 

你应该写:

 XmlSerializer sr = new XmlSerializer(typeof(Users)); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("",""); sr.Serialize(ms, this, ns); 

Quickie解决方案 – 转换为字符串然后删除 – 使用按钮单击开始执行。

上述就是C#学习教程:xml序列化 – 删除命名空间分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

 Imports System.IO Public Class Form1 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim mydoc As XElement = XElement.Load("C:UsersDocumentsmyfile.XML") Dim y As String = mydoc.ToString Dim z As String = mydoc.Name.Namespace.ToString Dim getrid As String = " xmlns=" & Chr(34) & z & Chr(34) y = Replace(y, getrid, "") Dim tr As TextReader = New StringReader(y) Dim newdoc As XElement = XElement.Load(tr) tr.Close() Debug.Print(newdoc.ToString) End Sub End Class 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1269840.html

(0)
上一篇 1天前
下一篇 1天前

精彩推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注