在C#中,当从文件或字符串中加载文档时,是否有一种方法可以计算出XmlNode在原始XML“文本”中的位置?我希望能够报告正在处理的XML文档的问题。

例如:

“ foo.xml中的错误-属性'pet'的值必须是一种蓬松的哺乳动物,在第27行第13栏[此处是原始XML文本的片段...]“

编辑:
无法使用架构验证进行检查。这是另一个轻率的示例错误消息,用于说明:“指定的插件类型'Addins.LogWindow'必须是公共的”

最佳答案

好吧,您不应该编写自己的XmlParser,但是在Compact Framework中我们别无选择,因为XmlDocument的速度与氯胺酮上的达赖喇嘛一样慢,因此在解析Xml文件时我们使用XmlReader。

每当发现混乱或不一致的情况时,我们都会引发异常,并将XmlReader传递给该异常。然后,我们可以通过将XmlReader转换为IXmlLineInfo对象来提取线位置,该对象包含线和位置的属性。

不知道这是否有帮助。通常,我不会在台式机上编写自己的XmlParser,这就是为什么我不敢建议将此作为解决方案的原因。

关于c# - 解析XML时如何访问节点的“行”和“列”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/605974/

10-09 03:47