从 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>
我想删除值为 66345
和 66346
的节点
虽然对 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);
}
我正在尝试用 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>
我想删除值为 66345
和 66346
虽然对 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);
}