나는 다음과 같은 XML 파일이 :더 깊은 xdocument 노드에 액세스하는 방법은 무엇입니까?
<Invoice_Ack>
<Invoices>
<Invoice>
<Invoice_Number>123456</Invoice_Number>
<Status>Rejected</Status>
<Detail_Errors>
<Detail_Error>
<ErrorID>0001</ErrorID>
<ErrorMessage>This is the error message</ErrorMessage>
</Detail_Error>
<Detail_Error>
<ErrorID>0502</ErrorID>
<ErrorMessage>This is another error message</ErrorMessage>
</Detail_Error>
</Detail_Errors>
</Invoice>
</Invoices>
</Invoice_Ack>
나는 다음과 같은 코드로 "INVOICE_NUMBER"와 "상태"노드에 액세스 할 수 있지만 나는 또한 "ErrorMessage가"노드를 잡아하는 방법을 모르겠어요. 다음은 내가 가지고있는 것입니다.
XDocument doc = XDocument.Load(file);
foreach(var invoice in doc.Descendants("Invoice"))
{
string status = invoice.Element("Status").Value;
string invoicenum = invoice.Element("Invoice_Number").Value;
}
그러나 ErrorMessage는 어떻게 받습니까? 시도 했음
string error = invoice.Element("Detail_Errors").Element("Detail_Error").Element("ErrorMessage").Value;
그러나 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다."
그 밖의 방법은 어떻게 될 수 있습니까? 고맙습니다!!
샘플 XML이 유효하지 않습니다. ''요소를 시작하지만 ''으로 끝납니다. XML과 코드 모두에 대해 간단하면서도 완전하고 유효한 * 예제를 제공해주십시오. –
죄송합니다. 오타입니다. 업데이트했습니다. 첫 번째은 이어야합니다. –
제공된 XML에 대해 코드가 올바르게 작동합니다. –