2010-08-19 34 views
19

希望這應該是一個簡單的答案(可能是一個愚蠢的),但我似乎無法弄清楚。使用XmlSerializer創建一個帶有屬性和值但沒有子元素的元素

我需要輸出看起來像這樣的一個元素:

<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>37</Quantity> 

但我不知道怎麼弄的屬性。

如果沒有簡單的方法來使用XmlSerializer來做這件事,我會感到非常驚訝,但我還不知道。有任何想法嗎?

+0

的可能重複的[XmlSerializer的 - 控制元素-屬性配對(修訂)](http://stackoverflow.com/questions/732314/xmlserializer-control-element-attribute-pairing-revised) – 2010-08-19 17:11:02

回答

47

我在這裏找到答案:Xmlserializer - Control Element-Attribute Pairing (revised)

以下是操作方法:使用[XmlText]屬性標記value屬性。

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; 

} 
+0

1爲與我的搜索相匹配的標題:) – 2013-04-22 07:10:32

+0

你回答了你自己的問題以及我的問題。 – Brandin 2013-07-03 19:58:54

+0

XmlText的解釋並沒有說明它適合於非文本值 – user3791372 2017-02-09 20:16:24

相關問題