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 次 |
最近记录: |