これが私が始めた方法です:
System.Xml.Serialization.XmlRootAttribute xRoot = new System.Xml.Serialization.XmlRootAttribute();
xRoot.IsNullable = true;
xRoot.Namespace = "urn:schemas-microsoft-com:rowset";
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(ProductSalesList), xRoot);
System.Xml.XmlReader reader = new System.Xml.XmlTextReader(path + "\\" + file);
eltOnly e = (eltOnly)serializer.Deserialize(reader);
しかし、私は続ける方法がわかりません。xml ファイルは次のとおりです。
<xml xmlns:s='uuid:00000000-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-0000-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly'>
<s:AttributeType name='Art' rs:number='1' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'>
<s:datatype dt:type='string' dt:maxLength='255'/>
</s:AttributeType>
<s:AttributeType name='Name' rs:number='2' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'>
<s:datatype dt:type='string' dt:maxLength='255'/>
</s:AttributeType>
<s:AttributeType name='Sum' rs:number='3' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'>
<s:datatype dt:type='float' dt:maxLength='8' rs:precision='15' rs:fixedlength='true'/>
</s:AttributeType>
<s:AttributeType name='Cost' rs:number='4' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'>
<s:datatype dt:type='float' dt:maxLength='8' rs:precision='15' rs:fixedlength='true'/>
</s:AttributeType>
<s:extends type='rs:rowbase'/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row Art='0000000001' Name='Brand pils 0,2' Sum='153' Cost='304'/>
<z:row Art='0000000002' Name='Brand pils 0,25' Sum='11' Cost='25.300000000000004'/>
<z:row Art='0000000003' Name='Brand pils 0,5' Sum='3' Cost='13.799999999999999'/>
</rs:data>
</xml>
続行するには?Deserialization 属性を持つクラスをどのように呼び出す必要がありますか?
これが私がしたことです:
[Serializable()]
public class Elt
{
[System.Xml.Serialization.XmlElement]
public string Art { get; set; }
[System.Xml.Serialization.XmlElement]
public string Name { get; set; }
[System.Xml.Serialization.XmlElement]
public float? Sum { get; set; }
[System.Xml.Serialization.XmlElement]
public float? Cost { get; set; }
}
[Serializable, System.Xml.Serialization.XmlRoot("eltOnly")]
public class eltOnly
{
[System.Xml.Serialization.XmlElement]
public List<Elt> Elt { get; set; }
}
そして、次のエラーが表示されます: XML ドキュメントにエラーがあります (1, 2)。「予期していませんでした。」