2014-07-10 35 views
1

我有一個XML應該採用以下格式:ArrayIndex在XMLAttribute

<name Segment1="infofor1" segment2="infofor2" Segment1_OtherInfo="SomethingElseFor1" Segment2_OtherInfo="SomethingElseFor2"/> 

對於I類想過休耕:

public class Name{ 
    public Segment[]Segment{get;set;} 
} 

public class Segment{ 
[XmlAttribute("Segment???")] 
    public string Segment{get;set;} 
[XmlAttribute("Segment???_OtherInfo")] 
    public string SegmentOtherInfo{get;set;} 
} 

一般而言,我想數組的索引我XML屬性的名稱。我認爲這是完全令人討厭的,但我不能改變XML,這是一個要求。 我該如何實現這一目標。我可以改變我想要的方式。 不錯的是,如果屬性是空的,則不會寫入屬性。

回答

0

我相信括號中的註釋對此不夠靈活(但我必須花費更多時間才能找出答案)。他們依靠反射和XMLSeralizer,這意味着您的代碼應該以某種方式表示XML模型。

在我看來,創建XElement s和XAttribute s更簡單。有了它們,您可以循環訪問數組,獲取數組的索引(或增加計數器),並添加必要的屬性以及合適的名稱。

這裏是一個寫得很好的例子: http://csharp-guide.blogspot.ch/2012/06/xattribute-class-is-used-along-with.html

像這樣:

... 
new XElement("name", new XAttribute("Segment" + counter, "infofor" + counter)); 
... 
+0

我想使用額外的XMLAttribute標籤。我怎樣才能做到這一點? – Iron