从 XmlNode 中删除特定节点

Remove specific nodes from XmlNode

我正在尝试用 C# 做一些简单的事情。 我有一个 XMLNode xNode 和以下

<TxnFrameworkImport>
  <RefreshData>False</RefreshData> 
  <Initializing>False</Initializing> 
  <CompanyID>1902</CompanyID> 
  <FolderID>-1</FolderID> 
  <SearchId>-1</SearchId> 
  <Remote>False</Remote> 
  <Parameters>
     <Parameter Type="Transactions" Name="TransactionKey">
       <Value Type="A" Name="584">7576</Value> 
       <Value Type="A" Name="123">66345</Value> 
       <Value Type="A" Name="4214">66346</Value> 
     </Parameter>
  </Parameters>
</TxnFrameworkImport>

我想删除值为 6634566346

的节点

虽然对 XML 使用 XDocument 系统优于 XmlDocument,但这是使用XmlNode 您询问的对象。

// "//Parameter/Value" is an XPath selector that finds any Parameter Node and selects the child Value nodes of it.
foreach (XmlNode valueNode in doc.SelectNodes("//Parameter/Value"))
{
    if (valueNode.InnerText == "66345" || valueNode.InnerText == "66346")
    {
        valueNode.ParentNode.RemoveChild(valueNode);
    }
}

您可以阅读有关 XPath 的更多信息here

另一个具有 XPath 条件的示例 or

foreach (XmlNode node in doc.SelectNodes("//Value[.=66345] | //Value[.=66346]"))
{
    node.ParentNode.RemoveChild(node);
}