<TestCase name="TestCase2" UID="8eb5d202-1559-47b3-b39e-21e46d0bc9d2" State="Checked" DataSourceId="">
<TestModule name="Recording1" State="Checked" UID="2">
</TestModule>
<TestModule name="Recording1" State="Checked" UID="2">
</TestModule>
<TestModule name="Recording1" State="Checked" UID="2">
</TestModule>
</TestCase>
在上面的xml中,我有多个具有相同名称和UID的节点,需要在第二个和第三个节点之间插入第一个节点,但由于l_NodeToAppend和l_targetNode是相同的,因此如果节点重复,我应该如何识别节点。
XmlNode l_NodeToAppend = null;
foreach (XmlNode i in e.SourceModels)
{
l_NodeToAppend = xDoc.SelectSingleNode(string.Format("//TestModule[@UID='{0}']", i.Attributes["UID"].Value));
if (l_NodeToAppend != null)
break;
}
XmlNode l_targetNode = xDoc.SelectSingleNode(string.Format("//TestModule[@UID='{0}']", e.TargetModel.Attributes["UID"].Value));
l_targetNode.ParentNode.InsertBefore(l_NodeToAppend, l_targetNode);
答案 0 :(得分:0)
l_NodeToAppend将是UID的第一个。 选择最后一个相同的UID对你有好处吗?
XmlNode l_targetNode = xDoc.SelectSingleNode(string.Format("//TestModule[@UID='{0}'][last()]", e.TargetModel.Attributes["UID"].Value));