使用 XmlSerializer 创建具有属性和值但没有子元素的元素

发布于 2024-09-14 22:48:56 字数 664 浏览 3 评论 0原文

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

我需要输出一个看起来像这样的元素:

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

我知道如何得到这个:

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

使用包含的 Quantity 类

public int qty;    
[XmlAttribute]
public string foo;

[XmlAttribute]
public string bar;

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

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

<Quantity>37</Quantity>

,但我不知道如何获取属性。

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

Hopefully this should be an easy answer for someone out there (and possibly a dupe), but I can't seem to figure it out.

I need to output an element that looks like this:

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

I know how to get this:

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

with a Quantity class containing

public int qty;    
[XmlAttribute]
public string foo;

[XmlAttribute]
public string bar;

but then of course whatever variable I insert the quantity into becomes its own sub-element.

On the other hand, if I make the Quantity a variable in the parent element, then I can set the value and get

<Quantity>37</Quantity>

but then I don't know how to get the attributes.

I would be very surprised if there weren't a simple way to do this with XmlSerializer, but I don't know it yet. Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

裂开嘴轻声笑有多痛 2024-09-21 22:48:56

我在这里找到答案:Xmlserializer - 控制元素属性配对(修订版)

操作方法如下:使用 标记 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;

}

I find the answer here: Xmlserializer - Control Element-Attribute Pairing (revised).

Here is how to do it: mark the value property with the [XmlText] attribute.

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;

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文