0

次のようなXMLファイルの逆シリアル化を行います。

  <?xml version="1.1" ?>
  <Veggies>
       <Carrot>
             <quantity> 1 </quantity>
       </Carrot>
  </Veggies>

Ok。私は次のようなクラスを書きます

[Serializable]
public class Veggies
{
    [XmlRoot("Veggies")]
    public Carrot carrot;
}

[Serializable]
public class Carrot
{
   [XmlElement("Quantity")]
   public string Quantity;
}

すべては順調です。

しかし、誰かが以下のような入力ファイルを解析した場合、

  <?xml version="1.1" ?>
  <Figs>
      <quantity> 11 </quantity>
  </Figs>
  <Veggies>
       <Carrot>
             <quantity> 1 </quantity>
       </Carrot>
  </Veggies>

エラーが発生します。ニンジンの量だけを取得して他のデータを残し、エラーをスローしないようにするための解決策を教えてください。

ありがとう。

4

1 に答える 1

0

わかりましたやつ.. 私は自分自身を理解しました!

<?xml version="1.1" ?>
<Figs>
  <quantity> 11 </quantity>
</Figs>
<Veggies>
    <Carrot>
          <quantity> 1 </quantity>
    </Carrot>
</Veggies>

「すべての要素は RootElement タグ内にある必要がある」という規則を尊重しないため、許可されません。

ファイルが次のようなものだった場合、

<?xml version="1.1" ?>
<Veggies>
    <Figs>
        <quantity> 11 </quantity>
    </Figs>
    <Carrot>
        <quantity> 1 </quantity>
    </Carrot>
</Veggies>

次に、ニンジンの量だけを読み取ることができ、他の人は正確にエラーをスローしません。

したがって、「要素は常に rootElement (ここでは例では "Veggies") 内に配置する」、つまり、要素は逆シリアル化クラス構造に従う必要があります。

ありがとう。

于 2012-12-18T05:59:13.107 に答える