删除节点/组在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); }
答
您不妨考虑使用较新的XML API,为您提供更清晰的语法:
var titulo = "bvc";
XDocument doc = XDocument.Load(your_path);
var el2remove = doc.XPathSelectElement($"/QuestionCollection/Questions/Question[@Titulo='{titulo}']");
el2remove.Remove();
“/ QuestionCollection /问题/问题[@titulo ='“+ titulo +”']“??? – LuizaoGT
是的..谢谢队友! –
我正在尝试,但它不起作用 – LuizaoGT