は、私はこのような要素を持ついくつかのXMLを持っている属性価値がない。私はこのXMLを制御しないので、変更することはできません。どのように私はこれを逆直列化するだろうか?逆シリアル化のXML要素が
** EDIT **
属性の値の一つは "> 6" である....これが犯人だろうか?もしそうなら、私はそれをどのように扱うのですか?
**更新**
属性の値で返していなかったいくつかのデータを>が見つかりました。同じエラーが発生しています。
**編集#3 * 受信するXMLのXSDを作成し、xsdツールを使用してそれらのクラスを生成しました。この投稿の末尾に追加。
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("xxx");
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
WeatherData Result = new WeatherData();
using (Stream st = resp.GetResponseStream())
{
XmlRootAttribute xRoot = new XmlRootAttribute();
xRoot.ElementName = "model_data";
xRoot.IsNullable = true;
Result = new XmlSerializer(typeof(WeatherData), xRoot).Deserialize(st) as WeatherData; ** Error here
XMLが返さ:ここ
は、デシリアライズコードです<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE observation SYSTEM "http://private.com/hithere.dtd">
<model_data>
<site a="28/12" b="KXXX">
<hour x="-9999" y="-9999" z="-9999"/>
</site>
</model_data>
データオブジェクト
[Serializable, XmlRoot("model_data")]
public class WeatherData
{
[XmlElement("site")]
public string City { get; set; }
[XmlAttribute]
public string a { get; set; }
[XmlAttribute]
public string b { get; set; }
[XmlElement(ElementName="hour", IsNullable=true)]
public string Hour { get; set; }
[XmlAttribute]
public string x { get; set; }
[XmlAttribute]
public string y { get; set; }
[XmlAttribute]
public string z { get; set; }
}
XSDツール生成されたクラス
**Removed generated classes, but they are similar to what Hugo posted **
「」の親から 'ReadElementString'を呼び出している可能性がありますか、それともあなたの読者があなたのどこにいるのでしょうか? –
Tung
投稿を編集してコードを提供します。 – TheGeekYouNeed
ストリームをXmlDocumentにダンプしてデシリアライズしようとすると、デシリアライザがエラーをスローした時の要素時間にあることがわかります。この形式では、正しい行と位置にエラーがスローされ、も開始されます。 –
TheGeekYouNeed