【发布时间】:2009-11-20 17:46:15
【问题描述】:
试试这个:
var doc1 = XDocument.Load(@"C:\any.xml", LoadOptions.SetLineInfo);
var doc2 = new XDocument(doc1);
doc2 不再有任何行号信息。深入研究 Reflector,我可以看到当节点从 doc1 克隆到 doc2 时,这不会保留 XObject 基本类型上的注释,其中包括可通过IXmlLineInfo 访问的行号信息。它也不保留我也需要的 BaseUri。
有什么想法可以在保留行号的同时克隆文档吗?我找到了this,但它没有保留 BaseUri,而且有点 hack。
【问题讨论】:
-
在我的特殊情况下,我已经解决了这个问题,方法是保留对原始 XDocument 的引用,该引用从未修改过,仅用于查找行号和 BaseUris。