如何更改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;
你应该有这样的东西:
[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获取详细信息。