XmlDocument.LoadXml()
try/catch ブロックのようなものを使用せずに、文字列に整形式の XML が含まれているかどうかを確認する方法を知っている人はいますか? 入力が XML である場合とそうでない場合があります。速度と、例外的でない状況では発生しないという一般原則の両方のために、try/catch に頼らずに、入力が XML ではない可能性があることを認識するコードが必要です。例外。現在、これを行うコードがあります。
private bool IsValidXML(string value)
{
try
{
// Check we actually have a value
if (string.IsNullOrEmpty(value) == false)
{
// Try to load the value into a document
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(value);
// If we managed with no exception then this is valid XML!
return true;
}
else
{
// A blank value is not valid xml
return false;
}
}
catch (System.Xml.XmlException)
{
return false;
}
}
しかし、try/catch を必要とすべきではないようです。文字列をチェックするたびにデバッガーがここで中断し、厄介な問題を「助けて」くれるため、例外はデバッグ中にメリーヘルを引き起こしています。