1

如何使用 C# 使用 .xsd 文件验证 .xml 文件中的数据并将无效数据替换为空值?

4

2 回答 2

1

查看XmlSchemaValidator 类。虽然它不容易使用,但它非常强大。

它通过“推”模型工作。API 会通知您在验证的当前点哪种 XML 是有效的。然后,您提供一段有效的 XML(元素、属性等),并再次询问,什么是有效的now。我已经使用它来创建符合一组模式的示例 XML。

虽然我没有尝试过,但我想您可以将输入 XML 提供给验证器,然后在解析中到达无效点时传递一些“空”XML。

于 2012-08-21T03:50:43.777 回答
-1

在 .NET 3.5 中验证只需使用以下代码

    public bool Validate(XmlReader xmlInput, XmlReader schemaDocument)
    {
        var xmlSchemaSet = new XmlSchemaSet();
        xmlSchemaSet.Add("", schemaDocument);
        try
        {
            var doc = XDocument.Load(xmlInput);
            bool valid = true;
            doc.Validate(xmlSchemaSet, (o, e) =>
            {
                valid = false;
            });
            return valid;
        }
        catch (Exception e)
        {
            return false;
        }
    }

但我认为,要更正您的文档,您应该使用 XmlReader 的方法和自定义验证。

于 2012-08-21T03:44:37.517 回答