28

希望这对于那里的某个人(可能是骗子)来说应该是一个简单的答案,但我似乎无法弄清楚。

我需要输出一个如下所示的元素:

<Quantity foo="AB" bar="CD">37</Quantity>

我知道如何得到这个:

  <Quantity foo="AB" bar="CD">
    <qty>37</qty>
  </Quantity>

数量类包含

public int qty;    
[XmlAttribute]
public string foo;

[XmlAttribute]
public string bar;

但是当然,我将数量插入的任何变量都会成为它自己的子元素。

另一方面,如果我将 Quantity 设为父元素中的变量,那么我可以设置该值并获取

<Quantity>37</Quantity>

但后来我不知道如何获得属性。

如果没有使用 XmlSerializer 执行此操作的简单方法,我会感到非常惊讶,但我还不知道。有任何想法吗?

4

1 回答 1

57

我在这里找到了答案:Xmlserializer - Control Element-Attribute Pairing (revised)

下面是如何做到这一点:用属性标记 value[XmlText]属性。

public class Quantity {
  // your attributes
  [XmlAttribute]
  public string foo;

  [XmlAttribute]
  public string bar;

  // and the element value (without a child element)
  [XmlText]
  public int qty;

}
于 2010-08-19T17:07:30.330 回答