在与另一个XML进行比较之前编辑XML
本文关键字:XML 编辑 比较 另一个 | 更新日期: 2023-09-27 17:52:43
我比较两个XML字符串,但希望在比较它们之前删除一些特定的属性元素。
我想删除<orderby>
属性元素和这些标签中的所有数据
<query>
<selecttables>
<field>
<tablerscd>1014</tablerscd>
<tablename> OEM IHS Engines</tablename>
</field>
<orderby>
</orderby>
</selecttables>
</query>
XML 2: <query>
<selecttables>
<field>
<tablerscd>1014</tablerscd>
<tablename> OEM IHS Engines</tablename>
</field>
<orderby>
<columnrscd>1228</columnrscd>
<columnrscd>1229</columnrscd>
</orderby>
</selecttables>
</query>
我的问题是:
在我比较它们之前,我如何删除<orderby>
属性和这些标签中的所有数据。
类似于我自己关于删除注释的问题,你可以这样做:
// load your Xml string into an XDocument
var xml = XDocument.Parse(yourxmlstringhere);
foreach (var node in xml.SelectNodes("//orderby").ToList())
{
node.ParentNode.RemoveChild(node);
}
这将找到所有的orderby
元素,导航到它们的父元素,并从那里删除它们。
我采纳了Anthony的回答,他指出在删除之前创建一个List
会更安全。
您可以非常简单地使用LINQ to XML:
var doc = XDocument.Parse(xml);
doc.Descendants("orderby").Remove();