Nic*_*eld 7 c# xml xmldocument
使用XmlDocument解析XML文件有什么选择,并且以后仍然保留错误消息的行信息?(顺便说一句,是否可以使用XML Deserialisation做同样的事情?)
选项似乎包括:
(从@Andy的评论中扩大答案)
没有内置的方法来使用XmlDocument(如果你正在使用XDocument,你可以使用XDocument.Load()接受的重载LoadOptions.SetLineInfo- 请参阅此问题).
虽然没有内置方法,但您可以使用PositionXmlDocument此处的包装类(来自SharpDevelop项目):
为了使用它,你需要使用Load接受的重载XmlReader(其他Load重载将转到常规XmlDocument类,它不会给你行号信息).如果您当前正在使用XmlDocument.Load接受文件名的重载,则需要更改代码,如下所示:
using (var reader = new XmlTextReader(filename))
{
var doc = new PositionXmlDocument();
doc.Load(reader);
}
Run Code Online (Sandbox Code Playgroud)
现在,您应该能够XmlNode将此文档中的任何内容转换为a PositionXmlElement来检索行号和列:
var node = doc.ChildNodes[1];
var elem = (PositionXmlElement) node;
Console.WriteLine("Line: {0}, Position: {1}", elem.LineNumber, elem.LinePosition);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3690 次 |
| 最近记录: |