Извлечь значение из xml строки - PullRequest
0 голосов
/ 18 июня 2020

Извините за банальную просьбу, но для меня сейчас непростое время. У меня есть эта часть кода XML:

<?xml version="1.0" encoding="UTF-8"?>
<ClinicalDocument xsi:schemaLocation="urn:hl7-org:v3 CDA.xsd" xmlns="urn:hl7-org:v3" xmlns:mif="urn:hl7-org:v3/mif" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<structuredBody moodCode="EVN" classCode="DOCBODY">
  <component>
    <section ID="DESCRIPTION">
      <code code="57832-8" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC" codeSystemVersion="2.19" />
      <title>DESCRIPTION</title>
      <text>
        <list ID="RQO">
          <caption>REQUEST:</caption>
          <item>
            <content ID="Prest_1">90153 - CORTISOLO [S]</content>
          </item>
          <item>
            <content ID="Prest_2">90171 - DEIDROEPIANDROSTERONE (DEA)</content>
          </item>
          <item>
            <content ID="Prest_3">90172 - DEIDROEPIANDROSTERONE SOLFATO (DEA-S)</content>
          </item>
          <item>
            <content ID="Prest_4">90413 - TESTOSTERONE [P]</content>
          </item>
          <item>
            <content ID="Prest_5">90414 - TESTOSTERONE LIBERO</content>
          </item>
        </list>
        <list ID="DIAG">
          <caption>Problem:</caption>
          <item>
            <content ID="Prob_1">Control</content>
          </item>
        </list>
      </text>
    </section>
  </component>      
</structuredBody>

Мне нужно было бы получить значения, содержащиеся в теге text , и, в частности: 1) Prest_1 2) 90153 - CORTISOLO [S] и все следующие строки. Спасибо за помощь.

1 Ответ

2 голосов
/ 18 июня 2020

LINQ to XML упрощает работу.

c#

void Main()
{
    const string FILENAME = @"e:\temp\ClinicalDocument.xml";

    XDocument doc = XDocument.Load(FILENAME);
    XNamespace ns = doc.Root.GetDefaultNamespace();

    foreach (var el in doc.Descendants(ns + "content"))
    {
        Console.WriteLine("ID='{0}', Content='{1}'", el.Attribute("ID").Value, el.Value);
    }
}

Вывод

ID='Prest_1', Content='90153 - CORTISOLO [S]'
ID='Prest_2', Content='90171 - DEIDROEPIANDROSTERONE (DEA)'
ID='Prest_3', Content='90172 - DEIDROEPIANDROSTERONE SOLFATO (DEA-S)'
ID='Prest_4', Content='90413 - TESTOSTERONE [P]'
ID='Prest_5', Content='90414 - TESTOSTERONE LIBERO'
ID='Prob_1', Content='Control'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...