gpt4 book ai didi

c# - 验证 xml 节点,而不是整个文档

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

我正在处理一些构成 xml 元素的 xml“片段”。我有架构,但我无法验证这些文件,因为它们不是完整的 xml 文档。当这些片段在其他工具中使用时,它们用必要的父元素包装以形成有效的 xml,因此我没有太多选择将它们变成有效的 xml 或更改模式。

是否可以验证一个元素,而不是整个文档?如果没有,可以建议哪些解决方法?

我正在使用 C# 和 .NET 2.0 框架工作。

最佳答案

我有一个类似的问题,我只能验证我的 XML 文档的一部分。我在这里想到了这个方法:

private void ValidateSubnode(XmlNode node, XmlSchema schema)
{
XmlTextReader reader = new XmlTextReader(node.OuterXml, XmlNodeType.Element, null);

XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.Schemas.Add(schema);
settings.ValidationType = ValidationType.Schema;
settings.ValidationEventHandler += new ValidationEventHandler(XSDValidationEventHandler);

using (XmlReader validationReader = XmlReader.Create(reader, settings))
{
while (validationReader.Read())
{
}
}
}

private void XSDValidationEventHandler(object sender, ValidationEventArgs args)
{
errors.AppendFormat("XSD - Severity {0} - {1}",
args.Severity.ToString(), args.Message);
}

基本上,我向它传递了一个 XmlNode(我通过 .SelectSingleNode 从整个 XmlDocument 中选择它)和一个 XML 模式,它是我从我的应用程序中的嵌入式资源 XSD 加载的。任何可能发生的验证错误都被填充到“错误”字符串生成器中,然后我在最后读出它,以查看是否记录了任何错误。

对我有用 - 你的里程可能会有所不同 :-)

关于c# - 验证 xml 节点,而不是整个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/715626/

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