xml 파일을 작성하고 있지만 요소를 작성하기 시작하면 오류가 발생하고 코드로 xml 파일을 읽으려고 할 때 이러한 요소를 찾을 수 없습니다.
<?xml version="1.0" encoding="utf-8" ?>
<options>
<difficulty>
<type name="Easy" health="6" active="0"/>
<type name="Normal" health="4" active="1"/>
<type name="Hard" health="2" active="0"/>
</difficulty>
<soundvolume>
<type name="Sound" value="100"/>
<type name="tempSound" value="100"/>
</soundvolume>
</options>
이것은 지금까지 xml 코드이지만 작동하지 않으면 계속하고 싶지 않습니다.
이것은 내가 얻는 오류입니다.
'options'요소에 대한 스키마 정보를 찾을 수 없습니다.
모든 요소에는 동일한 오류가 있습니다. Visual Studio 2013을 사용하고 Windows Forms Application C # 프로젝트가 있습니다.
이것은 내가 xml 파일을 읽는 방법입니다.
StreamReader sr = new StreamReader("Options.xml");
String xmlsr = sr.ReadToEnd();
sr.Close();
XElement xDocumentSr = XElement.Parse(xmlsr);
XElement xOptionsSr = xDocumentSr.Element("options");
XElement xDifficultySr = xOptionsSr.Element("difficulty");
foreach (XElement xType in xDifficultySr.Descendants("type"))
{
if(Convert.ToInt32(xType.Attribute("activate").Value) == 1)
{
labDifficulty.Text = xType.Attribute("name").Value;
}
}
오류는 다음과 같은 경우에 발생합니다.
XElement xOptionsSr = xDocumentSr.Element("options");
이 오류가 발생합니다.
Splash Screen.exe에서 'System.NullReferenceException'유형의 처리되지 않은 예외가 발생했습니다.
추가 정보 : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
디버그 모드에서 요소가 = null임을 알 수 있습니다.
여기:
XElement xDocumentSr = XElement.Parse(xmlsr);
XElement xOptionsSr = xDocumentSr.Element("options");
따라서 xDocumentSr
자체 내부의 요소를 options
찾고 있습니다. options
필요하지 않습니다. xDocumentSr.Element("options");
그리고 다음과 같이 코드를 단순화 할 수 있습니다.
var xmlDocument = XDocument.Load("Options.xml");
var element = xmlDocument.Root
.Element("difficulty")
.Elements("type")
.FirstOrDefault(x => (int)x.Attribute("active") == 1);
if(element != null)
labDifficulty.Text = element.Attribute("name").Value;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다