[英]Serialize XML into CSharp class
我在json數據字段中有一個xml字符串。 我想提取該值並將其與該字段的數據庫值進行比較。
我使用xsd.exe生成了該xml的類(從此處看到)。 我正在使用該類反序列化xml響應。 然后我從here
使用該方法反序列化。
我用了
`XmlSerializer serializer1 = new XmlSerializer(typeof(class_gen_from_xml))
在下面的代碼中,我從json響應中提取了xml源,然后執行了以下操作:
string xmlSource = "<ResultSet><Result precision=\"address\"> <Latitude>47.643727</Latitude></Result></ResultSet>";
XmlSerializer serializer = new XmlSerializer(typeof(ResultSet));
ResultSet output;
using (StringReader reader = new StringReader(xmlSource))
{
output = (ResultSet)serializer.Deserialize(reader);
}
`而且我得到了一個異常,調試一點也沒有發現。 代碼中有我缺少的東西嗎?
您的ResultSet
類可能有問題,對我來說很好用:
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class ResultSet
{
private ResultSetResult[] resultField;
[System.Xml.Serialization.XmlElementAttribute("Result")]
public ResultSetResult[] Result
{
get
{
return this.resultField;
}
set
{
this.resultField = value;
}
}
}
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class ResultSetResult
{
private decimal latitudeField;
private string precisionField;
public decimal Latitude
{
get
{
return this.latitudeField;
}
set
{
this.latitudeField = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute()]
public string precision
{
get
{
return this.precisionField;
}
set
{
this.precisionField = value;
}
}
}
使用反序列化代碼:
static void Main(string[] args)
{
string xmlSource = "<ResultSet><Result precision=\"address\"> <Latitude>47.643727</Latitude></Result></ResultSet>";
XmlSerializer serializer = new XmlSerializer(typeof(ResultSet));
ResultSet output;
using (StringReader reader = new StringReader(xmlSource))
{
output = (ResultSet)serializer.Deserialize(reader);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.