我正在尝试这样做:我有一个 XML 文件,我想根据 XSD 文件对其进行验证。 到目前为止,上帝...我要做的是显示验证错误所在的所有节点。
例如我有这个 XML 文件:
<people>
<name>Jonh</name>
<tel>91991919199191919</tel>
</people>
当我验证此文件时,这将在 tel 节点中出现错误。 我想向我的应用程序的最终用户展示名称,以及 XML 中的错误。
我正在尝试在 C#.NET 中执行此操作。
感谢您的帮助...
最佳答案
此代码根据 XSD 文件验证 XML 文件并返回带有行号的错误。
public static void ValidateXML(Stream stream)
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add("", "yourXSDPath");
settings.ValidationType = ValidationType.Schema;
XmlReader reader = XmlReader.Create(stream, settings);
XmlDocument document = new XmlDocument();
document.Load(reader);
ValidationEventHandler eventHandler = new ValidationEventHandler(ValidationEventHandler);
document.Validate(eventHandler);
reader.Close();
}
static void ValidationEventHandler(object sender, ValidationEventArgs e)
{}
try
{
ValidateXML(yourXMLStream);
}
catch (XmlSchemaValidationException ex)
{
Console.WriteLine(String.Format("Line {0}, position {1}: {2}", ex.Message, ex.LineNumber, ex.LinePosition));
}
关于c# - 呈现 xml 验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1974559/