测试结束标签

时间:2013-04-04 07:50:56

标签: c# .net xml

如何测试结束标记是否可用:

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并给我异常:意外的结束标记。

1 个答案:

答案 0 :(得分:3)

将它加载到XmlDocument中,在它周围放置一个try-catch,如果有任何异常,则表示XML字符串有问题(缺少结束标记,无效字符等) -

try{
    XmlDocument xdoc = new XmlDocument();
    xdoc.LoadXml(xmlString);
}
catch (XmlException xe)
{
    System.Windows.Forms.MessageBox.Show(xe.Message);
}