XML을 XDocument로로드하고 요소를 수정 한 다음 저장하는 메소드가 있습니다. 하지만 다시로드 할 때. 이 오류가 발생했습니다 :XDocument 중복 XML 작성
예기치 않은 XML 선언. XML 선언은 문서의 첫 번째 노드 여야하며 앞에 공백 문자를 표시 할 수 없습니다.
XML을 검사하고 XDocument가 변경 사항을 저장하지 않았지만 복제본을 만들고 저장한다는 것을 확인합니다.
using (Stream stream = storage.OpenFile("APPSDATA.xml", FileMode.Open, FileAccess.ReadWrite))
{
//var xdoc = XDocument.Load("APPSDATA.xml");
var xdoc = XDocument.Load(stream, LoadOptions.None);
var listapp = from c in xdoc.Descendants("Ungdung") select c;
foreach (XElement app in listapp)
{
var xElement = app.Element("Name");
if (xElement != null)
progressIndicator.Text = "Checking " + xElement.Value + "...";
var element = app.Element("Id");
if (element != null)
{
var appId = element.Value;
var appVersion = await GetAppsVersion(appId);
app.Element("Version").Value = appVersion.ToString();
}
}
xdoc.Save(stream);
}
가 어떻게이 문제를 해결할 수
: 여기 수정하고 XML을 저장하는 데 사용되는 코드를<?xml version="1.0" encoding="UTF-8"?>
<Ungdungs>
<Ungdung>
<Name>HERE City Lens</Name>
<Id>b0a0ac22-cf9e-45ba-8120-815450e2fd71</Id>
<Path>/Icon/herecitylens.png</Path>
<Version>Unknown</Version>
<Category>HERE</Category>
<Date>Uknown</Date>
</Ungdung>
<?xml version="1.0" encoding="UTF-8"?>
<Ungdungs>
<Ungdung>
<Name>HERE City Lens</Name>
<Id>b0a0ac22-cf9e-45ba-8120-815450e2fd71</Id>
<Path>/Icon/herecitylens.png</Path>
<Version>1.0.0.0</Version>
<Category>HERE</Category>
<Date>Uknown</Date>
</Ungdung>
:
그것은 이전이 예를 들어, XML과 같은 새를 저장?
'xDoc.Save (stream);의 바로 전에'stream.SetLength (0);'을 시도하십시오. – Vladimir