gpt4 book ai didi

c# - 使用外部 DTD 验证 XML

转载 作者:太空宇宙 更新时间:2023-11-03 23:23:46 24 4
gpt4 key购买 nike

我正在尝试使用外部 dtd 文件验证我的 XML。这是 XML header :

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE CONTEXT SYSTEM "Data.dtd">
<CONTEXT>
...
</CONTEXT>

这是我的代码:

        // Set the validation settings.
XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Parse;
settings.ValidationType = ValidationType.DTD;
settings.ValidationEventHandler += (sender, args) => Debug.WriteLine(args.Message);
// Create the XmlReader object.
XmlReader reader = XmlReader.Create("Data.xml", settings);
// Parse the file.
while (reader.Read());

运行这段代码后,我收到很多错误,看起来都是一样的:

The 'CONTEXT' element is not declared.

我试图为明显不存在的文件更改 doctype 中的文件名,但结果得到了同样的错误。请告诉我我哪里弄错了?

最佳答案

我可以重现这个问题,作为我建议设置的修复

settings.XmlResolver = new XmlUrlResolver();

那样的话,外部的 DTD 文件就被抓取了,似乎是这样,否则就抓不到了。 MSDN 上的文档说:“从 .NET Framework 4.5.2 开始,此设置的默认值为空。”。看来,您需要明确地创建它。

关于c# - 使用外部 DTD 验证 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34482320/

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