在C#中的XpathDocument中编辑标签

时间:2019-01-29 13:08:46

标签: c# xml xpath xpathdocument

我有XpathDocument对象,其内容类似于

<MainTag>
   <XYZTag>
      <Tag>
       <CTag ID="ABS"/>
      </Tag>
     </XYZTag>
     <ABCTag>
       <CTag ID="ABS"/>
      </ABCTag>
      <FGHTag>
       <CTag ID="ABS"/>
      </FGHTag>
</MainTag>

我要删除

<Tag> </Tag> 

使其看起来像

<MainTag>
   <XYZTag>

       <CTag ID="ABS"/>

     </XYZTag>
     <ABCTag>
       <CTag ID="ABS"/>
      </ABCTag>
      <FGHTag>
       <CTag ID="ABS"/>
      </FGHTag>
</MainTag>

我试图将innerXML分配给externalXML,显然是不允许的。无数的在线解决方案也不起作用。是否可以在XPathDocument中进行此更改?

1 个答案:

答案 0 :(得分:1)

是否必须为XPathDocument。您可以使用XmlDocument轻松地做到这一点。这是一个例子。

var xml = @"
<MainTag>
      <Tag>
       <CTag ID='ABS'/>
      </Tag>
</MainTag>";

var doc = new XmlDocument();
doc.LoadXml(xml);
var tagNode = doc.SelectSingleNode("//Tag");

var ctagNode = tagNode.FirstChild;
tagNode.ParentNode.ReplaceChild(ctagNode, tagNode);