2
我有另一個任務,我不能做到:我應該從this site解析XML,刪除不具有「視頻」,在其名稱中的所有節點,然後將其保存到另一個XML文件。我在閱讀和寫作方面沒有任何問題,但移除會使我遇到一些困難。我試圖做的節點 - >父節點 - >子節點工作和身邊的,但它似乎沒有有用:刪除XML節點
static void Main(string[] args)
{
using (WebClient wc = new WebClient())
{
string s = wc.DownloadString("http://feeds.bbci.co.uk/news/health/rss.xml");
XmlElement tbr = null;
XmlDocument xml = new XmlDocument();
xml.LoadXml(s);
foreach (XmlNode node in xml["rss"]["channel"].ChildNodes)
{
if (node.Name.Equals("item") && node["title"].InnerText.StartsWith("VIDEO"))
{
Console.WriteLine(node["title"].InnerText);
}
else
{
node.ParentNode.RemoveChild(node);
}
}
xml.Save("NewXmlDoc.xml");
Console.WriteLine("\nDone...");
Console.Read();
}
}
我也曾嘗試RemoveAll方法,它不工作爲好,因爲它刪除所有不滿足「VIDEO」條件的節點。
//same code as above, just the else statement is changed
else
{
node.RemoveAll();
}
你能幫助我,好嗎?
非常感謝你......我沒有一直與LINQ的很多,到目前爲止,但它看起來非常簡單而且非常強大。接受答案。 – Storm 2013-05-04 19:57:10
我可以再問一個問題嗎?我試圖改變寫入控制檯,但不知何故它不工作......'foreach(var item in xDoc.XPathSelectElements(「// item [(starts-with(title,'VIDEO:'))]」)。 ToList()) Console.WriteLine((string)item.Attribute(「title」)); }' – Storm 2013-05-04 20:23:32
@Storm'title'不是item的*屬性*。這是子元素。嘗試'item.Element(「title」)。Value' – I4V 2013-05-04 20:30:55