使用XmlReader解析XML文件时,如何获得DOCTYPE声明的详细信息,尤其是文件名?
给定以下几行代码,我希望获得信息"sample“、"SYSTEM”和"sample.dtd“。
<?xml version="1.0"?>
<!DOCTYPE sample SYSTEM "sample.dtd">
<sample>
</sample>这将为我提供根元素名称"sample":
if (reader.NodeType == XmlNodeType.DocumentType)
Console.WriteLine(reader.Name);
}发布于 2020-02-21 06:45:12
可以将DTD读取为名为SYSTEM的属性。
var dtd = reader.GetAttribute("SYSTEM");完整示例:
var pathToXmlFile = @"c:\folder\file.xml";
using (XmlReader reader = XmlReader.Create(
pathToXmlFile,
new XmlReaderSettings { DtdProcessing = DtdProcessing.Parse }
))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.DocumentType)
{
var dtd = reader.GetAttribute("SYSTEM"); // sample.dtd
}
}
}https://stackoverflow.com/questions/60329036
复制相似问题