如何确定XML是否具有未闭合的字符串

时间:2013-09-24 15:59:05

标签: c# xml

我有很多XML文件,其中一些可能有像这样的未闭合字符串

<ns0:Info InfoTyp="53" InfoID="/>

那些未封闭的字符串并不总是显示为标记的最后一部分

Notepad ++ C#中是否可以轻松检测文件何时出现此类字符串?

如何在XML文件中检测出其他类型的错误,使其成为无效的XML?我需要尝试解析它来检测它吗?

3 个答案:

答案 0 :(得分:1)

使用C#,您可以尝试将xml文件加载到XDocument(或XmlDocument)中:

using System.Xml.Linq; // include this in your using directives

try
{
    var xdoc = XDocument.Load(path_to_xml);
}
catch (XmlException e)
{
    // xml is invalid     
}

XmlException包含有关导致错误的行号和位置的信息。异常消息也非常有用。例如。为你xml,它会说:

  

发生了意外的文件结束。以下要素不是   关闭:第1行,第35位。

答案 1 :(得分:0)

在c#

try
{
    XDocument doc=XDocument.Load(path);
}
catch(XmlException ex)
{
    //oops xml not formatted properly
}

在Notepad ++中

检查RegularExpression选项

查找内容:\A([^"]*"[^"]*"[^"]*)*\z

如果匹配则您有一个有效的xml

答案 2 :(得分:0)

您可以针对XSD架构进行验证,以确保XML文档格式正确并符合特定结构。

如果使用.NET,这是一篇很好的文章...

https://stackoverflow.com/a/2553468/1246574