當我試圖史蒂夫的解決方案,我收到以下錯誤「的元素列表已經改變枚舉操作無法繼續 」。我知道這是一個黑客位,但要解決這個問題我用下面的:
//Load XML
XmlDocument XDoc = new XmlDocument();
XDoc.Load(MapPath(@"~\xml\test.xml"));
//Get list of offending nodes
XmlNodeList Nodes = XDoc.GetElementsByTagName("ARTIST");
//Loop through the list
while (Nodes.Count != 0) {
foreach (XmlNode Node in Nodes) {
//Remove the offending node
Node.ParentNode.RemoveChild(Node); //<--This line messes with our iteration and forces us to get a new list after each remove
//Stop the loop
break;
}
//Get a refreshed list of offending nodes
Nodes = XDoc.GetElementsByTagName("ARTIST");
}
//Save the document
XDoc.Save(newfile);
我在困境和需要的東西快速,這讓工作做好。
你需要使用XmlWriter還是可以使用XmlDocument或XDocument? – 2011-04-06 12:22:22
我需要使用XmlWriter。如果有一種快速的方法將其翻轉到XmlDucument並翻轉,也許它已經足夠了。 – Erez 2011-04-06 12:26:08
XmlWriter不能'包含'XML - 它不能讀取或存儲它。你如何閱讀或存儲XML?順便說一下,我建議使用XSLT - 使用默認模板輸出除藝術家之外的所有內容。我建議的唯一原因是因爲這就是XSLT的用途 - 轉換XML文件。 – 2011-04-06 12:50:26