내 요구 사항은 xml 파일을 만들고 xml 요소를 기존 xml 파일에 추가하는 것입니다.단일 xml 파일에서 두 xml 선언 오류
먼저 다음 코드로 새 xml 파일을 만들려고했습니다.
using (XmlWriter xmlWriter = XmlWriter.Create(fStream, xmlSettings))
{
xmlWriter.WriteStartDocument(true);
xmlWriter.WriteStartElement("Friends");
xmlWriter.WriteStartElement("Friend");
xmlWriter.WriteElementString("Name", "Safiq");
xmlWriter.WriteElementString("Like", "Char");
xmlWriter.WriteElementString("Unlike", "anger");
xmlWriter.WriteElementString("Nickname", "good");
xmlWriter.WriteElementString("Gift", "c#");
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
}
다음 기존 파일에 새 요소를 추가했습니다.
XDocument XDOC = XDocument.Load(fStream);
XElement x = new XElement("Friend");
x.Add(new XElement("Name", "Safiq"));
x.Add(new XElement("Like", "Char"));
x.Add(new XElement("Unlike", "anger"));
x.Add(new XElement("Nickname", "good"));
x.Add(new XElement("Gift", "c#"));
XDOC.Descendants("Friends").Single().Add(x);
XDOC.Save(fStream);
그러나 다음 출력이 표시됩니다.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Friends>
<Friend>
<Name>Safiq</Name>
<Like>Char</Like>
<Unlike>anger</Unlike>
<Nickname>good</Nickname>
<Gift>c#</Gift>
</Friend>
</Friends>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Friends>
<Friend>
<Name>Safiq</Name>
<Like>Char</Like>
<Unlike>anger</Unlike>
<Nickname>good</Nickname>
<Gift>c#</Gift>
</Friend>
<Friend>
<Name>Safiq</Name>
<Like>Char</Like>
<Unlike>anger</Unlike>
<Nickname>good</Nickname>
<Gift>c#</Gift>
</Friend>
</Friends>
어디가 잘못 되었나요?
고마워요이다. 그것은 나의 시간을 절약했다. !! –
stream.position = 0;을 추가하면 오류가 발생합니까? –
@Shafiq : 항상 데이터를 추가하는 것은 아닙니다. 그러나 데이터를 제거하기 위해 코드를 변경 한 경우 끝에 남은 데이터로 인해 잘못된 XML 파일이 생성됩니다. 나는 대신 신선한 물줄기를 사용했다. –