Поиск в XML по условию - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет, я НУБик в этом деле и знаю что сейчас посыпятся на меня упреки, но все же прошу помощи. Пишу программу на C# для обработки данных в XML файле (на поиск незаполненных полей, на неверные данные, и т.д.). И вот вопрос: как мне сделать так что бы при вводе , к примеру, в стоку тексбокса значения тэга <ID_PAC>, в "листе" отображались данные связанные с этим ID_PAC. Вот сам файл:
<?xml version="1.0" standalone="yes"?>
<ZL_LIST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <ZAP>
    <N_ZAP>1</N_ZAP>
    <PR_NOV>0</PR_NOV>
    <PACIENT>
      <ID_PAC>7</ID_PAC>
      <VPOLIS>3</VPOLIS>
      <NPOLIS>7554110888000272</NPOLIS>
      <ST_OKATO>76000000000</ST_OKATO>
      <SMO>75001</SMO>
      <SMO_OGRN>1027501157386</SMO_OGRN>
      <SMO_OK>76000</SMO_OK>
      <SMO_NAM>ГК "ЗАБАЙКАЛМЕДСТРАХ"</SMO_NAM>
      <NOVOR>0</NOVOR>
    </PACIENT>
    <SLUCH>
      <IDCASE>22417</IDCASE>
      <USL_OK>3</USL_OK>
      <VIDPOM>31</VIDPOM>
      <FOR_POM>3</FOR_POM>
      <LPU>750109</LPU>
      <LPU_1>1</LPU_1>
      <PODR>1026</PODR>
      <PROFIL>53</PROFIL>
      <DET>0</DET>
      <NHISTORY>7/2</NHISTORY>
      <DATE_1>2015-01-30</DATE_1>
      <DATE_2>2015-01-30</DATE_2>
      <DS1>Z00.0</DS1>
      <RSLT>301</RSLT>
      <ISHOD>304</ISHOD>
      <PRVS>1</PRVS>
      <VERS_SPEC>V004</VERS_SPEC>
      <IDDOKT>055-697-812 10</IDDOKT>
      <IDSP>29</IDSP>
      <ED_COL>1</ED_COL>
      <TARIF>261,14</TARIF>
      <SUMV>261,14</SUMV>
      <SUMP />
          </SLUCH>
  </ZAP>
  <PERS>
    <ID_PAC>7</ID_PAC>
    <FAM>ШЕВЧЕНКО</FAM>
    <IM>НЕТ</IM>
    <OT>НЕТ</OT>
    <W>2</W>
    <DR>2015-01-24</DR>
    <FAM_P>ШЕВЧЕНКО</FAM_P>
    <IM_P>ЕКАТЕРИНА</IM_P>
    <OT_P>СЕРГЕЕВНА</OT_P>
    <W_P>2</W_P>
    <DR_P>1988-09-02</DR_P>
    <OKATOG>76401000000</OKATOG>
    <OKATOP>76401000000</OKATOP>
    <DOST>1</DOST>
    <DOST>3</DOST>
  </PERS>
</ZL_LIST>

Решение задачи: «Поиск в XML по условию»

textual
Листинг программы
using System;
using System.Xml;
using System.Collections.Generic;
 
 
 
 
class cyb23 {
    public static void Main() {
        string strXML=@"<?xml version=""1.0"" standalone=""yes""?>
                        <ZL_LIST xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">
                        <ZAP>
                            <N_ZAP>1</N_ZAP>
                            <PR_NOV>0</PR_NOV>
 
                            <PACIENT>
                                <ID_PAC>7</ID_PAC>
                                <VPOLIS>3</VPOLIS>
                                <NPOLIS>7554110888000272</NPOLIS>
                                <ST_OKATO>76000000000</ST_OKATO>
                                <SMO>75001</SMO>
                                <SMO_OGRN>1027501157386</SMO_OGRN>
                                <SMO_OK>76000</SMO_OK>
                                <SMO_NAM>ГК ""ЗАБАЙКАЛМЕДСТРАХ""</SMO_NAM>
                                <NOVOR>0</NOVOR>
                            </PACIENT>
 
                            <SLUCH>
                                <IDCASE>22417</IDCASE>
                                <USL_OK>3</USL_OK>
                                <VIDPOM>31</VIDPOM>
                                <FOR_POM>3</FOR_POM>
                                <LPU>750109</LPU>
                                <LPU_1>1</LPU_1>
                                <PODR>1026</PODR>
                                <PROFIL>53</PROFIL>
                                <DET>0</DET>
                                <NHISTORY>7/2</NHISTORY>
                                <DATE_1>2015-01-30</DATE_1>
                                <DATE_2>2015-01-30</DATE_2>
                                <DS1>Z00.0</DS1>
                                <RSLT>301</RSLT>
                                <ISHOD>304</ISHOD>
                                <PRVS>1</PRVS>
                                <VERS_SPEC>V004</VERS_SPEC>
                                <IDDOKT>055-697-812 10</IDDOKT>
                                <IDSP>29</IDSP>
                                <ED_COL>1</ED_COL>
                                <TARIF>261,14</TARIF>
                                <SUMV>261,14</SUMV>
                                <SUMP />
                            </SLUCH>
                        </ZAP>
                
                        <PERS>
                            <ID_PAC>7</ID_PAC>
                            <FAM>ШЕВЧЕНКО</FAM>
                            <IM>НЕТ</IM>
                            <OT>НЕТ</OT>
                            <W>2</W>
                            <DR>2015-01-24</DR>
                            <FAM_P>ШЕВЧЕНКО</FAM_P>
                            <IM_P>ЕКАТЕРИНА</IM_P>
                            <OT_P>СЕРГЕЕВНА</OT_P>
                            <W_P>2</W_P>
                            <DR_P>1988-09-02</DR_P>
                            <OKATOG>76401000000</OKATOG>
                            <OKATOP>76401000000</OKATOP>
                            <DOST>1</DOST>
                            <DOST>3</DOST>
                        </PERS>
                    </ZL_LIST>";
        XmlDocument d=new XmlDocument();
        d.LoadXml(strXML);
 
        Dictionary<string,string> dInf=new Dictionary<string, string>();
        int k=7;
        XmlNodeList nn=d.SelectNodes(@"//*[ID_PAC="+k+"]");
        foreach (XmlNode n in nn)
            foreach (XmlNode ch in n.ChildNodes) {
                dInf[ch.Name]=ch.InnerText;
                Console.WriteLine("{0}: {1}", ch.Name, ch.InnerText);
            }
        
 
        Console.ReadLine();
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы