0

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

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

那些未闭合的字符串并不总是出现在标签的最后一部分

Notepad++C#中是否有一种方法可以轻松检测文件何时具有这种字符串?

如何在 XML 文件中检测到其他类型的错误,使其成为无效的 XML?我需要尝试解析它以检测到这一点?

4

3 回答 3

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。

于 2013-09-24T16:02:47.853 回答
0

在c#中

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

在记事本++

检查正则表达式选项

找什么:\A([^"]*"[^"]*"[^"]*)*\z

如果它匹配你有一个有效的xml

于 2013-09-24T16:03:09.900 回答
0

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

如果使用 .NET,这是一篇很好的文章,可以帮助您入门...

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

于 2013-09-24T16:03:41.130 回答