我正在尝试生成下面这个简化的xml片段。
<?xml version="1.0" encoding="utf-16"?>
<group>
<name attr="yes">My name</name>
</group>
当我序列化下面的代码时,属性转到组,但我希望属性转到名称。
// C# class
[XmlRoot("group", IsNullable = false)]
public class Test1
{
[XmlAttribute]
public string attr = "yes";
[XmlElement("name")]
public string Name;
}
// Output
<?xml version="1.0" encoding="utf-16"?>
<group attr="yes">
<name>My name</name>
</group>
如果我把元素名设为类,我就可以在正确的位置得到属性,但是,现在我得到了一个额外的嵌套元素名。
[XmlRoot("group", IsNullable = false)]
public class Test1
{
[XmlElement("name")]
public Test2 Name;
}
public class Test2 : Object
{
[XmlAttribute]
public string attr = "yes";
[XmlElement("name")]
public string Name;
}
// Output
<group>
<name attr="yes">
<name>My name</name>
</name>
</group>
问题是,如何在没有元素的子项的情况下获取元素名称上的属性?
1条答案
按热度按时间bzzcjhmw1#
您必须使用
XmlText
而不是XmlElement
来标记Test2
上的Name
属性。