我有一個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