XDocument에 다소 문제가있어 메신저에서 반환 된 XML을 구문 분석하는 XDocument를 만듭니다. 난에서 말을 할 수있는 자손을 호출 할 때 여기, 지금은 XMLXDocument는 선택한 객체가 있지만 Descendants를 얻지 못합니다.
<VentaOnlineList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<VentasList>
<VentaOnlineInfo>
<ProcessDate>2010-11-01T00:00:00</ProcessDate>
<TicketDate>2010-11-01T00:00:00</TicketDate>
<DeliveryDate>2010-09-29T00:00:00</DeliveryDate>
<DwhLastMonthProcessData>0</DwhLastMonthProcessData>
<DwhLastMonthTicketDate>0</DwhLastMonthTicketDate>
<PsucLastMonthDeliveryDate>0</PsucLastMonthDeliveryDate>
<DwhSelectedMonthProcessData>-6.54</DwhSelectedMonthProcessData>
<DwhSelectedMonthTicketDate>-6.54</DwhSelectedMonthTicketDate>
<PsucSelectedMonthDeliveryDate>-6.54</PsucSelectedMonthDeliveryDate>
<DwhNextMonthProcessData>0</DwhNextMonthProcessData>
<DwhNextMonthTicketDate>0</DwhNextMonthTicketDate>
<PsucNextMonthDeliveryDate>0</PsucNextMonthDeliveryDate>
</VentaOnlineInfo>
</VentasList>
<Error>
<ErrorFlag>false</ErrorFlag>
</Error>
</VentaOnlineList>
이다 "VentaOnlineInfo는"그것의 비어있는 것을 말한다.
여기에 코드입니다
XDocument xmlSell = XDocument.Parse(xmlContent);
XNamespace nameSpace = "http://tempuri.org/";
var venta = from ventas in xmlSell.Descendants(nameSpace + "VentaOnlineInfo")
select new VentaDigital
{
ProcessDate = (DateTime)ventas.Attribute("ProcessDate"),
TicketDate = (DateTime)ventas.Attribute("TicketDate"),
DeliveryDate = (DateTime)ventas.Attribute("DeliveryDate")
};
ventasDigitales.ItemsSource = venta;
xmlContent의 XML을 포함하는 문자열을 가득합니다.
누군가가 왜 자손이 존재하지 않는다고 말하고 있는지 알고 있습니다. 도움이 될 것입니다
하나의 오류 일 수는 있지만 여전히 실패합니다. 예외는 발생하지 않지만 DataGrid 네티어를 채우지는 않습니다. – ShinyDarkStone
더 많은 문제를 발견했습니다. 수정 된 답변을 참조하십시오. LinqPAD에서 시도해 보았고 이러한 변경 사항과 함께 작업했습니다. –
당신은 DateTime에 캐스트 할 수 있습니다. 명시적인 전환이 있습니다. –