我需要尽可能快地验证并在socket上接收下一个xml数据.
我正在使用此方法来验证收到的xml-datas.
private validateRecievedXmlCallback()
{
try
{
XmlReader xreader = XmlReader.Create(new StringReader(xmlData));
while (xreader.Read()) ;
}
catch (Exception)
{
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
但我认为这种方法效率不高.我实际上只需要检查最后一个标签.
例:
<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?
Run Code Online (Sandbox Code Playgroud)
如果你坚持使用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.
Run Code Online (Sandbox Code Playgroud)
正如其他评论者已经说过的那样,除了使用XML解析器之外,没有什么好的方法可以保证XML文档的良好格式.
| 归档时间: |
|
| 查看次数: |
707 次 |
| 最近记录: |