如何测试结束标记是否可用:
e.g。
<A>
<n>
<r>
</r>
<b>
</b>
在上述情况下,我错过了</A>
和</n>
结束标记
我该如何检查?
CODE:
try
{
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(FileName);
}
catch (XmlException xe)
{
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(FileName);
xdoc.AppendChild(xdoc.CreateElement("/n"));
xdoc.AppendChild(xdoc.CreateElement("/A"));
}
但它给了我一个例外:根数据无效。 xml缺少/ n和/ A的结束标记。请指教。
编辑2:
try
{
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(FileName);
}
catch (XmlException xe)
{
using (StreamWriter w = File.AppendText(FileName))
{
w.WriteLine("</n>");
w.WriteLine("</A>");
}
}
现在使用编辑2,它会使用缺少的标记来修正文件名。但是,如果xml已经可用,它仍会进入并放入另一个标签/ n / A并给我异常:意外的结束标记。
答案 0 :(得分:3)
将它加载到XmlDocument中,在它周围放置一个try-catch,如果有任何异常,则表示XML字符串有问题(缺少结束标记,无效字符等) -
try{
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(xmlString);
}
catch (XmlException xe)
{
System.Windows.Forms.MessageBox.Show(xe.Message);
}