gpt4 book ai didi

c# - 如何通过 .NET 验证 xml 代码文件? + 如果我使用 XML 序列化,我该怎么做?

转载 作者:数据小太阳 更新时间:2023-10-29 02:14:49 27 4
gpt4 key购买 nike

我希望用户能够将数据导出为 XML 文件。当然,我希望他们以后能够导入同一个 XML 文件,但是他们总是可以更改它或者它可以是不同的 XML 文件。

所以我想验证 XML 文件以检查它是否是我期望的格式。所以我想我需要类似模式的东西来检查它是否必须通过代码。

所以如果我期望

<Root>
<Something>
<SomethingElse> </SomethingElse>
</Something>
</Root>

我不希望文件中出现我期望的格式以外的其他格式。

另外,我将如何验证字段?就像说我要求标签之间必须有一些文本。如果为空,则文件无效。

那我该怎么做呢?

编辑

我决定使用 XML 序列化,所以我知道如果格式错误,它将通过异常处理并忽略不起作用的内容。但是我不确定我应该通过它和 C# 来验证每条记录,还是应该尝试制作一个 xml 模式来完成它。

如果我想通过带有 xml 序列化的 xml 模式来实现,那将如何工作?就像我先做一些我在回复中看到的那样然后反序列化吗?或者我该怎么做?

最佳答案

这是您可以用来执行此操作的代码片段:

using (FileStream stream = File.OpenRead(xsdFilepath))
{
XmlReaderSettings settings = new XmlReaderSettings();

XmlSchema schema = XmlSchema.Read(stream, OnXsdSyntaxError);
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add(schema);
settings.ValidationEventHandler += OnXmlSyntaxError;

using (XmlReader validator = XmlReader.Create(xmlPath, settings))
{
// Validate the entire xml file
while (validator.Read()) ;
}
}

OnXmlSyntaxError 函数将在发生语法错误时调用。

关于c# - 如何通过 .NET 验证 xml 代码文件? + 如果我使用 XML 序列化,我该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2111747/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com