0

我对 XML 文件进行反序列化,类似于:

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

行。我写的课程像

[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 回答