XML 파일 작업에 여전히 익숙해졌습니다. 저는 온라인에서 여러 가지 예를 살펴 보았으며 오류 처리가 부족하다는 사실에 시달렸습니다.XmlDocument를 구문 분석 할 때의 오류 처리
가장 일반적인 오류는 el.Attributes["name"].Value
입니다. XML은 사람이 편집 할 수 있기 때문에 속성이 누락되었을 수 있습니다. 그리고 Value
속성을 null
으로 참조하면 예외가 발생합니다. 다른 문제는 예상되는 형식이 아닌 데이터와 관련됩니다.
public static class XmlHelpers
{
public static string GetValue(this XmlAttribute attr, string defaultValue = "")
{
if (attr != null)
return attr.Value;
return defaultValue;
}
public static bool GetValueBool(this XmlAttribute attr, bool defaultValue = false)
{
bool value;
if (bool.TryParse(attr.GetValue(), out value))
return value;
return defaultValue;
}
}
내가이 일을 알고 :
그래서 나는 다음의 라인을 따라 몇 가지 도우미 확장 방법을 쓰기 시작했다. 그러나 나는 무엇인가 놓치고 있냐?
XmlDocument
은 이러한 유형의 물건을 불필요하게하는 기능을 이미 제공합니까? 나는 다른 사람들이 이것을 어떻게 다루고 있는지 궁금 할 뿐이다.
많은 XML 파일이 인간에 의해 편집되지 않는다는 것을 알고 있습니다. 이러한 이유로 많은 사람들이 오류가 없다고 가정하는 코드를 작성할 수 있습니다. 오류가 있으면 예외가 있습니다. 나는 그것을 이해할 수있다. 하지만 파일을 사람이 편집하고 뭔가 형식이 올바르지 않으면 내 응용 프로그램에 약간의 유연성을 부여하기를 바랬습니다.
LINQ에 익숙하다면 LINQ to XML로 이동하는 것이 좋습니다 (요소/속성 누락이나 이름의 철자가 같은 경우에도 마찬가지입니다). – Tim
이러한 문제가 해결되지 않으면 LINQ to XML로 이동하는 것이 좋습니다. –
XmlDocument를 사용하는 것이 훨씬 더 쉽습니다 (IMO). 몇 줄의 코드로 XML 문서를 구문 분석, 수정 및 생성 할 수 있습니다. – Tim