c# - 如何更改 XML 父标签

标签 c# xml winforms

假设我有一个像这样的 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>

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

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

如何更改标签 <ArrayOfInternetProxy><InternetProxy>成为我喜欢的样子?

我设法使用以下方法更改属性:

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

但这不适用于其他标签。

谢谢。

我的类(class):

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了解详情。

关于c# - 如何更改 XML 父标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808744/

相关文章:

c# - 从鼠标光标在屏幕上的位置获取图像坐标(WPF 图像控件)

python - 在 Python 3 中使用 SAX 解析器解析 XML

java - 通过 XSL 样式表将命名空间添加到 Java(Apache FOP - JSP)文件解析

c# - 没有特殊字符的文本框

c# - 单击“确定”按钮后如何关闭当前表单并将字符串传递给预制件

.net - 如何在组框中获取选中的单选按钮?

c# - 以编程方式通过路由/模型绑定(bind)传递 URL

c# - 构造一个整数数组来实现特定的序列

c# - 在正则表达式匹配/替换模式上需要一些帮助

java - Eclipse Juno Android 错误,styles.xml 错误