我有一个xmlDoc中,这是它的一个部分:从xmlDoc中删除节点,如何删除父节点?
<Main>
<Set>
<MId>1</MId>
<RName>
<MetaData>
<PrdctName>
Test 1
</PrdctName>
</MetaData>
</RName>
</Set>
<Set>
<MId>1</MId>
<RName>
<MetaData>
<PrdctName>
Test 2
</PrdctName>
</MetaData>
</RName>
</Set>
<Set>
<MId>1</MId>
<RName>
<MetaData>
<PrdctName>
Test 3
</PrdctName>
</MetaData>
</RName>
</Set>
<Set>
<MId>2</MId>
<RName>
<MetaData>
<PrdctName>
Test 1
</PrdctName>
</MetaData>
</RName>
</Set>
</Main>
通过选择prdctName其余必须从xmlDoc中除去。例如,如果我选择“测试1” 结果必须是:
<Main>
<Set>
<MId>1</MId>
<RName>
<MetaData>
<PrdctName>
Test 1
</PrdctName>
</MetaData>
</RName>
</Set>
<Set>
<MId>2</MId>
<RName>
<MetaData>
<PrdctName>
Test 1
</PrdctName>
</MetaData>
</RName>
</Set>
</Main>
的问题是,我不知道如何删除标记。 所以一个删除后的XML看起来像现在这样:
<Main>
<Set>
<MId>1</MId>
<RName>
<MetaData>
<PrdctName>
Test 1
</PrdctName>
</MetaData>
</RName>
</Set>
<Set/>
<Set/>
<Set>
<MId>2</MId>
<RName>
<MetaData>
<PrdctName>
Test 1
</PrdctName>
</MetaData>
</RName>
</Set>
</Main>
哪个代码我必须写删除标签也?
这是我现在使用的代码的一部分:
foreach (XmlNode chkNode in nodes)
{
string currentName = "Test 1";
if (!nameDict.ContainsKey(currentName))
chkNode.ParentNode.RemoveAll();
}
在你最后一个XML例子,我假设的''的次数实际上应该是' '? –
psubsee2003
2012-08-10 11:17:35
当然必须有一个标签。当我编辑这个问题的时候,但是在我保存了这个问题之后它就消失了。 – Remco 2012-08-10 11:17:54
否是我得到的,这是正确的。第一个是第一个标记,另外两个来自已删除的节点。 –
Remco
2012-08-10 11:20:08