删除节点/组在XML文件中的元素的

问题描述:

这是解决删除节点/组在XML文件中的元素的

以下作品-The代码,但是,对于那些已经被保存在XML文件中不能正常工作的问题,只对那些在保存执行应用程序.-

问题是标题字符串未被发送。

TitleTxtD.onClick.AddListener(delegate(){ Instance.DeleteXML(strTitle); }); 

我需要创建一个从XML文件中删除节点的函数。我尝试了一个代码(下面),但它不工作,任何想法如何帮助我?我需要在XML文件中找到并删除所需标题的问题,我不知道它是否是自动的,但我需要一起删除问题中的元素。

public void DeleteXML(string titulo){ 
     XmlDocument doc = new XmlDocument(); 
     doc.Load ("Assets/Resources/Questions.xml"); 

     XmlNode qa = doc.SelectSingleNode ("QuestionCollection/Questions"); 
     XmlNode q = qa.SelectSingleNode ("Question[@titulo='"+titulo+"']"); 
     q.ParentNode.RemoveChild(q); 
     doc.Save ("Assets/Resources/Questions.xml"); 
     //XmlNode root = doc.DocumentElement; 
     Instance.LoadXML(); 
    } 

**的loadXML的功能将仅更新在屏幕上的元素。

XML文件:

<?xml version="1.0" encoding="UTF-8"?> 
<QuestionCollection> 
    <Questions> 
    <Start> 
    </Start> 
    <Question Titulo="bvc"> 
     <Enunciado>xcv</Enunciado> 
     <Resposta1>xcv</Resposta1> 
     <Resposta2>xcv</Resposta2> 
     <Resposta3>xcv</Resposta3> 
     <Resposta4>vxcv</Resposta4> 
     <RespostaC>xcv</RespostaC> 
    </Question> 
    </Questions> 
</QuestionCollection> 

XmlElement el = (XmlElement)doc.SelectSingleNode("/QuestionCollection/Questions/Question[@titulo='"+titulo+"']"); 
if(el != null) { el.ParentNode.RemoveChild(el); } 
+0

“/ QuestionCollection /问题/问题[@titulo ='“+ titulo +”']“??? – LuizaoGT

+0

是的..谢谢队友! –

+0

我正在尝试,但它不起作用 – LuizaoGT

您不妨考虑使用较新的XML API,为您提供更清晰的语法:

var titulo = "bvc"; 
XDocument doc = XDocument.Load(your_path); 

var el2remove = doc.XPathSelectElement($"/QuestionCollection/Questions/Question[@Titulo='{titulo}']"); 
el2remove.Remove();