如何更改XML父标记

本文关键字:XML 何更改 | 更新日期: 2023-09-27 18:28:37

假设我有一个xml文件,如下所示:

<ArrayOfInternetProxy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <InternetProxy>
    <ProxyName />
    <ProxyIP>23.19.34.127:8800</ProxyIP>
    <Username />
    <Password />
  </InternetProxy>
</ArrayOfInternetProxy>

xml文件中还有更多的<InternetProxy>,但为了清楚起见,我删除了它们。

<InternetProxy>表示程序中的一个对象,而<ArrayOfInternetProxy>表示所述对象的数组。

如何将标签<ArrayOfInternetProxy><InternetProxy>更改为我喜欢的任何标签?

我设法通过使用来更改属性

    [XmlElement("ProxyName")]
    public string ProxyName { get; set; }

但这对其他标签不起作用。

谢谢。

我的班级:

public class InternetProxy //I want to change this in the xml output
{
    [XmlElement("ProxyName")]
    public string ProxyName { get; set; }
    [XmlElement("ProxyIP")]
    public string Address { get; set; }
    [XmlElement("Username")]
    public string UserName { get; set; }
    [XmlElement("Password")]
    public string Password { get; set; }
}

编辑:

这是我尝试过的,为什么这对我不起作用??

[XmlElement("Proxies")]
[XmlArray("Proxies")]
List<InternetProxy> proxies;

如何更改XML父标记

你应该有这样的东西:

[XmlArray("Proxies")]
public InternetProxy[] InternetProxy
{
   get;
   set;
}

要控制它的序列化方式,您可以应用以下属性:

  • XmlArrayAttribute:它将更改数组的名称(实际的ArrayOfInternetProxy
  • XmlArrayItemAttribute:它将更改数组项的名称(实际的InternetProxy

如果直接序列化数组(因此数组中没有此类属性),则应该应用XmlType属性,如:

[XmlType(TypeName="Proxies")]
public class InternetProxy
{
}

请参阅http://msdn.microsoft.com/en-us/library/2baksw0z(v=vs.10).aspx获取详细信息。