我有一个Xml,其格式应为:
<name Segment1="infofor1" segment2="infofor2" Segment1_OtherInfo="SomethingElseFor1" Segment2_OtherInfo="SomethingElseFor2"/>
对于课堂我想到了休息:
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 :(得分:0)
我认为括号中的注释对此不够灵活(但我必须花更多时间才能找到)。它们依赖于反射和XMLSeralizer
,这意味着您的代码应该以某种方式表示XML模型。
在我看来,创建XElement
和XAttribute
更容易。使用它们,您可以循环遍历数组,获取数组的索引(或增加计数器)并使用合适的名称添加必要的属性。
这是一个写得很好的例子: http://csharp-guide.blogspot.ch/2012/06/xattribute-class-is-used-along-with.html
像这样:
...
new XElement("name", new XAttribute("Segment" + counter, "infofor" + counter));
...