首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在XML反序列化过程中忽略非自定义项

在XML反序列化过程中忽略非自定义项
EN

Stack Overflow用户
提问于 2012-12-18 12:05:10
回答 1查看 59关注 0票数 0

我对XML文件进行了反序列化,如下所示:

代码语言:javascript
复制
  <?xml version="1.1" ?>
  <Veggies>
       <Carrot>
             <quantity> 1 </quantity>
       </Carrot>
  </Veggies>

好的。我写了这样的类

代码语言:javascript
复制
[Serializable]
public class Veggies
{
    [XmlRoot("Veggies")]
    public Carrot carrot;
}

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

平安无事。

但是如果有人解析如下所示的输入文件,

代码语言:javascript
复制
  <?xml version="1.1" ?>
  <Figs>
      <quantity> 11 </quantity>
  </Figs>
  <Veggies>
       <Carrot>
             <quantity> 1 </quantity>
       </Carrot>
  </Veggies>

我得到一个错误。你能给我一个解决方案,使得胡萝卜的数量可以单独检索,而不会抛出错误的其他数据吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-18 13:59:13

好吧伙计们..。我想通了!

代码语言:javascript
复制
<?xml version="1.1" ?>
<Figs>
  <quantity> 11 </quantity>
</Figs>
<Veggies>
    <Carrot>
          <quantity> 1 </quantity>
    </Carrot>
</Veggies>

是不允许的,因为它不遵守“所有元素都应该在RootElement标记内”的规则。

如果文件是这样的,

代码语言:javascript
复制
<?xml version="1.1" ?>
<Veggies>
    <Figs>
        <quantity> 11 </quantity>
    </Figs>
    <Carrot>
        <quantity> 1 </quantity>
    </Carrot>
</Veggies>

然后,胡萝卜的数量可以单独读取,其他人不会抛出任何错误。

因此,“始终将元素放在rootElement中(在这里的示例中是”蔬菜“)”,或者换句话说,这些元素应该遵循反序列化类结构。

谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13926068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档