2015-09-07 73 views
3

XML如何通过属性

<WorkTable> 
    <Days> 
     <Day id="0" name="Monday"/> 
     <Day id="1" name="Tuesday"/> 
     <Day id="2" name="Wednesday"/> 
     <Day id="3" name="Thursday" /> 
     <Day id="4" name="Friday"/> 
     <Day id="5" name="Saturday"/> 
     <Day id="6" name="Sunday"/> 
    </Days> 
    <SpecialDays> 
     <Day date="22.07.2015"/> 
     <Day date="24.07.2015"/> 
    </SpecialDays> 
</WorkTable> 

删除XML节点此代码不会删除XML节点。你能帮我找到问题吗?

XmlDocument doc = new XmlDocument(); 
doc.Load(localXMLpath + xmlFileName); 
XmlNode delNode= doc.SelectSingleNode("/WorkTable/SpecialDays/Day[@date='24.07.2015']"); 
delNode.ParentNode.RemoveChild(delNode); 
doc.Save(localXMLpath + xmlFileName); 
+0

它应该是相同的,因为我的固定 – Koray

+0

你得到一个特定的错误? – Bgl86

+1

你确定你的问题不是它覆盖文件?代码工作正常 – rbm

回答

3

这应该工作:

XDocument xdoc = XDocument.Load(filename); 
xdoc.Element("WorkTable").Element("SpecialDays").Elements("Day") 
    .Where(x => (string)x.Attribute("date") == "24.07.2015") 
    .Remove(); 
xdoc.Save(filename); 
+1

这就是一些不错的代码人+1无论如何:) –