加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 验证xml的有效方法?

发布时间:2020-12-16 01:50:36 所属栏目:百科 来源:网络整理
导读:我需要尽可能快地验证并在socket上接收下一个xml数据. 我正在使用此方法来验证收到的xml-datas. private validateRecievedXmlCallback(){ try { XmlReader xreader = XmlReader.Create(new StringReader(xmlData)); while (xreader.Read()) ; } catch (Excep
我需要尽可能快地验证并在socket上接收下一个xml数据.

我正在使用此方法来验证收到的xml-datas.

private validateRecievedXmlCallback()
{
  try
  {      
    XmlReader xreader = XmlReader.Create(new StringReader(xmlData));
    while (xreader.Read()) ;
  }
  catch (Exception)
  {
    return false;
  }

  return true;
}

但我认为这种方法效率不高.我实际上只需要检查最后一个标签.

例:

<test valueA="1" valueB="2">
   <data valueC="1" />
   <data valueC="5" />
   <data valueC="5">220</data>
</test>  //I need to check if </test> tag closed,but whats the best way to do it?

解决方法

如果你坚持使用XmlReader,你可以使用XmlReader.Skip(),它会跳过当前元素的内容.

所以

xreader.ReadStartElement("test"); // moves to document root,throws if it is not <test>
xreader.Skip(); // throws if document is not well-formed,e.g. root has no closing tag.

正如其他评论者已经说过的那样,除了使用XML解析器之外,没有什么好的方法可以保证XML文档的良好格式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读