我正在嘗試在下面生成這個簡化的 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>
問題是如何在元素名稱沒有子項的情況下獲取元素名稱的屬性?
uj5u.com熱心網友回復:
您必須使用而不是標記該Name屬性。Test2XmlTextXmlElement
public class Test2
{
[XmlAttribute]
public string attr = "yes";
[XmlText]
public string Name;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/532248.html
標籤:C#。网xml序列化
上一篇:如何在Python中獲取XML值
