我有很多XML文件,其中一些可能有像这样的未闭合字符串
<ns0:Info InfoTyp="53" InfoID="/>
那些未封闭的字符串并不总是显示为标记的最后一部分
Notepad ++ 或 C#中是否可以轻松检测文件何时出现此类字符串?
如何在XML文件中检测出其他类型的错误,使其成为无效的XML?我需要尝试解析它来检测它吗?
答案 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,这是一篇很好的文章...