다음 XML에는 오류가 있거나 없을 수 있습니다.
결과가 나타나지 않으면 여전히 < 오류> </error> 태그가 출력됩니다. 내 코드에LINQ 읽기 XML ... XDocument 사용
string xml =
"<response>
<total>1</total>
<bla>bla bla bla</bla>
<error></error>
</response>";
나는 XML 이런 식으로로드 :
XDocument doc = XDocument.Parse(xml);
XElement responseNode = doc.Element("response");
을 그리고 오류 태그에이 방법 분석 :
이List<Error> Errors = (from w in doc.Descendants("error")
select new Error
{
ErrorCode = w.ElementValueInt("errorcode"),
ErrorMessage = w.ElementValueString("errormessage")
}).ToListSafely<Error>();
이 문제 :
NO있다 오류, 나는 여전히 Count = 1,
때문에 doc.Descendants ("오류") 는 "< 오류> </오류>"발견
로드와 노드를 구문 분석 할 때 빈 노드
을 제외 할 LINQ 코드를 알 수있는 방법이 있나요?
답변 :
난 그냥 추가 할 필요하여 LINQ에 "(w.HasElements) 여기서"그래서
List<Error> Errors = (from w in doc.Descendants("error")
where (w.HasElements)
select new Error
{
ErrorCode = w.ElementValueInt("errorcode"),
ErrorMessage = w.ElementValueString("errormessage")
}).ToListSafely<Error>();
... 그리고 그것은 작동! 당신이 정말 만 errorcode
및 errormessage
의 하위 요소가 error
요소를 원하는처럼
아래 분야에서 자신의 질문에 대답하고,이 SO에 허용 다시 보정으로 다음을 표시 할 수 있습니다. 사람들이 대답하지 않은 질문을 보는 것을 방지하고 답변 된 질문을보고 싶은 사람들을 초대합니다. –