使用C#取消注释XML文件中的注释节点
发布时间:2020-12-15 08:29:01 所属栏目:百科 来源:网络整理
导读:我有一个 XML文件,其中有一个被注释掉的节点.我使用语法创建了这个节点 – relTableCommentedNode = xDoc.CreateNode(XmlNodeType.Comment,“RELTABLECOMMENTED”,“np”); 取消注释此节点的最佳方法是什么?我可以根据用于创建节点的名称(RELTABLECOMMENTED
我有一个
XML文件,其中有一个被注释掉的节点.我使用语法创建了这个节点 –
relTableCommentedNode = xDoc.CreateNode(XmlNodeType.Comment,“RELTABLECOMMENTED”,“np”); 取消注释此节点的最佳方法是什么?我可以根据用于创建节点的名称(RELTABLECOMMENTED)来识别此节点吗? 这是注释节点 <!--<reltable toc="no" class="- map/reltable "> <relheader class="- map/relheader "> <relcolspec type="concept" class="- map/relcolspec "> </relheader> <relrow class="- map/relrow "> <relcell class="- map/relcell "> <topicref href="conceptsabout_cannedgoods.dita" copy-to="conceptsabout_cannedgoods.dita" class="- map/topicref " xmlns:dctm="http://www.documentum.com"> </topicref> </relcell> </relrow> </reltable> --> 解决方法
据我所知,使用XmlDocument,没有直接的方法来做到这一点.您需要执行以下操作
>获取注释节点的值 下面是一个示例,其中包含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); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |