据我所知,使用xmldocument,没有直接的方法可以做到这一点。你需要做如下的事情
-
获取注释节点的值
-
使用步骤1中的值创建新的xmlnode
-
删除注释节点
-
将步骤2中的新节点添加到DOM树中
下面是一个示例,其中稍微简化了XML版本,并在查找正确注释节点的注释中对您的队列进行了寻址。注意,我查询的是所有注释节点,显然您可以更具体地查询您感兴趣的文档部分。
string xml = @"
<root>
<!--<reltable toc='no' class='- map/reltable '>
<relheader class='- map/relheader '>
<relcolspec type='concept' class='- map/relcolspec '/>
</relheader>
</reltable> -->
<!--<reltable toc='no' class='- map '>
<relheader class='- map/relheader '>
<relcolspec type='concept' class='- map/relcolspec '/>
</relheader>
</reltable> -->
</root>";
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(xml);
XmlNodeList commentedNodes = xdoc.SelectNodes("//comment()");
var commentNode = (from comment in commentedNodes.Cast<XmlNode>()
where comment.Value.Contains("class='- map '")
select comment).FirstOrDefault();
if (commentNode != null)
{
XmlReader nodeReader = XmlReader.Create(new StringReader(commentNode.Value));
XmlNode newNode = xdoc.ReadNode(nodeReader);
commentNode.ParentNode.ReplaceChild(newNode, commentNode);
}