0

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

例如

<A>
  <n>  

  <r>
  </r>

<b>
</b>

在上述情况下,我缺少了</A>结束</n>标签。
我该如何检查?

代码:

   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>");
           }
            }

现在使用 Edit 2,它会使用缺少的标签更正文件名。但是,如果 xml 已经可用,它仍然会进入另一个标签 /n /A 并给我一个例外:意外的结束标签。

4

1 回答 1

3

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

try{
    XmlDocument xdoc = new XmlDocument();
    xdoc.LoadXml(xmlString);
}
catch (XmlException xe)
{
    System.Windows.Forms.MessageBox.Show(xe.Message);
}
于 2013-04-04T07:56:54.170 回答