내가 여기에서하려고하는 것은 XML 문서에 요소가 있는지 여부를 확인하는 것입니다. 존재하는 경우 요소의 내부 텍스트를 수정하려고합니다. 그것이 존재하지 않는다면 나는 그것을 만들고 그것을위한 적절한 내부 텍스트를 만들고 싶다. 그러나 요소가 존재할 때 내부 텍스트를 변경하려고하면 XML 파일 전체가 변경된 것보다 짧아집니다.XML.Save 파일 작성 신비
내 코드 :
<?xml version="1.0" encoding="utf-8"?>
<MyXMLFile>
<Source>C:\Users\Dacto\Desktop\Napster</Source>
<Destination>C:\Users</Destination>
</MyXMLFile>/MyXMLFile>
는 "추가"/ MyXMLFile 참조 : 짧은 내부 텍스트 후
<?xml version="1.0" encoding="utf-8"?>
<MyXMLFile>
<Source>C:\Users\Dacto\Desktop\</Source>
<Destination>C:\Program Files\Adobe</Destination>
</MyXMLFile>
: 짧은 내부 텍스트를 수정하기 전에
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(path);
XmlNodeList felement = xmldoc.GetElementsByTagName(Element);
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
if (felement.Count == 0)
{
XmlElement elmRoot = xmldoc.DocumentElement;
XmlElement xmlele = xmldoc.CreateElement(Element);
xmlele.AppendChild(xmldoc.CreateTextNode(data));
elmRoot.AppendChild(xmlele);
xmldoc.Save(fs);
}
else
{
felement[0].InnerText = data;
xmldoc.Save(fs);
}
fs.Close();
XML 파일 > 무슨 일이야 ??
그게 무슨 일이 일어나고 있는지, 나는 그것을 FileMode.Truncate로 바꿨다. 그리고 그것은 작동한다 : – Dacto
다행이다. 파일이 존재하지 않을 가능성이있는 경우 FileMode.Create가 가장 좋은 방법입니다. 이미 존재하는지 여부에 따라 파일을 만들거나자를 것이므로 가장 좋습니다. –
이전에 일부 코드에서 경로가 실제로 존재하는지 확인하고 그렇지 않은 경우 경로를 만듭니다. – Dacto