Chr*_*nce 39 .net c# xml exception-handling
我更喜欢这样做而不会捕获异常,LoadXml()并将此结果用作逻辑的一部分.对于不涉及手动解析xml的解决方案的任何想法?我认为VB对此函数的返回值为false,而不是抛出XmlException.Xml输入由用户提供.非常感谢!
if (!loaded)
{
this.m_xTableStructure = new XmlDocument();
try
{
this.m_xTableStructure.LoadXml(input);
loaded = true;
}
catch
{
loaded = false;
}
}
Run Code Online (Sandbox Code Playgroud)
Ras*_*ber 61
抓住例外.与解析XML相比,捕获异常淹没的开销很小.
如果你想要这个功能(出于风格原因,而不是性能),请自己实现:
public class MyXmlDocument: XmlDocument
{
bool TryParseXml(string xml){
try{
ParseXml(xml);
return true;
}catch(XmlException e){
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我无法使XmlValidatingReader和ValidationEventHandler工作.对于不正确形成的xml,仍会抛出XmlException.我通过用反射器查看方法来验证这一点.
我确实需要每秒验证100个短XHTML片段.
public static bool IsValidXhtml(this string text)
{
bool errored = false;
var reader = new XmlValidatingReader(text, XmlNodeType.Element, new XmlParserContext(null, new XmlNamespaceManager(new NameTable()), null, XmlSpace.None));
reader.ValidationEventHandler += ((sender, e) => { errored = e.Severity == System.Xml.Schema.XmlSeverityType.Error; });
while (reader.Read()) { ; }
reader.Close();
return !errored;
}
Run Code Online (Sandbox Code Playgroud)
XmlParserContext也不起作用.
有人使用正则表达式成功吗?
| 归档时间: |
|
| 查看次数: |
85530 次 |
| 最近记录: |