Kinyanjui Kamau Ответов: 1

Xdocument прочитал из linq: "перечисление не дало никаких результатов"


У меня есть следующий XML-документ, который я пытаюсь прочитать С помощью XDocument. Смотрите ниже код:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Document xmlns='urn:iso:std:iso:20022:tech:xsd:pain.002.001.03' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
  <CstmrPmtStsRpt>
    <GrpHdr>
      <MsgId>21169931</MsgId>
      <CreDtTm>2018-11-16T13:40:12</CreDtTm>
      <InitgPty>
        <Nm>Standard Bank SA</Nm>
        <Id>
          <OrgId>
            <BICOrBEI>SBZAZAJJXXX</BICOrBEI>
          </OrgId>
        </Id>
      </InitgPty>
    </GrpHdr>
    <OrgnlGrpInfAndSts>
      <OrgnlMsgId>KESD00017-Domestic Base-300732</OrgnlMsgId>
      <OrgnlMsgNmId>PAIN.001.001.03</OrgnlMsgNmId>
      <OrgnlCreDtTm>2018-11-16T11:11:25</OrgnlCreDtTm>
      <OrgnlNbOfTxs>1</OrgnlNbOfTxs>
      <OrgnlCtrlSum>15000000.00</OrgnlCtrlSum>
      <GrpSts>RJCT</GrpSts>
      <StsRsnInf>
        <Rsn>
          <Cd>NARR</Cd>
        </Rsn>
        <AddtlInf>Error: 4022</AddtlInf>
        <AddtlInf>Duplicate File</AddtlInf>
      </StsRsnInf>
    </OrgnlGrpInfAndSts>
  </CstmrPmtStsRpt>
</Document>


Мне нужно получить информацию только из 2 тегов, а именно: <orgnlmsgid> и <addtlinf>

Таким образом, данные должны быть похожи

string id = "KESD00017-отечественная база-300732";
string info = "Error: 4022, Duplicate File"; // Concat оба разделены запятой.

Как я могу этого достичь?

Что я уже пробовал:

Я попробовал ниже только для тега id, но получил уведомление: перечисление "Empty = "не дало никаких результатов"

ВАР ID = (
из c в doc.Потомки("OrgnlGrpInfAndSts")
выберите c.Element("OrgnlMsgId").Ценность
);

1 Ответов

Рейтинг:
9

lmoelleb

Существует дефолт пространство имен.

Каждый раз, когда вы указываете имя элемента, вам необходимо включить пространство имен:

            XNamespace ns = "urn:iso:std:iso:20022:tech:xsd:pain.002.001.03";
...
            doc.Descendants(ns + "OrgnlGrpInfAndSts");
...


Kinyanjui Kamau

Ура, это помогает.

Kinyanjui Kamau

Большое спасибо за эту информацию.