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

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

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

Всем привет, я НУБик в этом деле и знаю что сейчас посыпятся на меня упреки, но все же прошу помощи. Пишу программу на C# для обработки данных в XML файле (на поиск незаполненных полей, на неверные данные, и т.д.). И вот вопрос: как мне сделать так что бы при вводе , к примеру, в стоку тексбокса значения тэга <ID_PAC>, в "листе" отображались данные связанные с этим ID_PAC. Вот сам файл:
Листинг программы
  1. <?xml version="1.0" standalone="yes"?>
  2. <ZL_LIST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3. <ZAP>
  4. <N_ZAP>1</N_ZAP>
  5. <PR_NOV>0</PR_NOV>
  6. <PACIENT>
  7. <ID_PAC>7</ID_PAC>
  8. <VPOLIS>3</VPOLIS>
  9. <NPOLIS>7554110888000272</NPOLIS>
  10. <ST_OKATO>76000000000</ST_OKATO>
  11. <SMO>75001</SMO>
  12. <SMO_OGRN>1027501157386</SMO_OGRN>
  13. <SMO_OK>76000</SMO_OK>
  14. <SMO_NAM>ГК "ЗАБАЙКАЛМЕДСТРАХ"</SMO_NAM>
  15. <NOVOR>0</NOVOR>
  16. </PACIENT>
  17. <SLUCH>
  18. <IDCASE>22417</IDCASE>
  19. <USL_OK>3</USL_OK>
  20. <VIDPOM>31</VIDPOM>
  21. <FOR_POM>3</FOR_POM>
  22. <LPU>750109</LPU>
  23. <LPU_1>1</LPU_1>
  24. <PODR>1026</PODR>
  25. <PROFIL>53</PROFIL>
  26. <DET>0</DET>
  27. <NHISTORY>7/2</NHISTORY>
  28. <DATE_1>2015-01-30</DATE_1>
  29. <DATE_2>2015-01-30</DATE_2>
  30. <DS1>Z00.0</DS1>
  31. <RSLT>301</RSLT>
  32. <ISHOD>304</ISHOD>
  33. <PRVS>1</PRVS>
  34. <VERS_SPEC>V004</VERS_SPEC>
  35. <IDDOKT>055-697-812 10</IDDOKT>
  36. <IDSP>29</IDSP>
  37. <ED_COL>1</ED_COL>
  38. <TARIF>261,14</TARIF>
  39. <SUMV>261,14</SUMV>
  40. <SUMP />
  41. </SLUCH>
  42. </ZAP>
  43. <PERS>
  44. <ID_PAC>7</ID_PAC>
  45. <FAM>ШЕВЧЕНКО</FAM>
  46. <IM>НЕТ</IM>
  47. <OT>НЕТ</OT>
  48. <W>2</W>
  49. <DR>2015-01-24</DR>
  50. <FAM_P>ШЕВЧЕНКО</FAM_P>
  51. <IM_P>ЕКАТЕРИНА</IM_P>
  52. <OT_P>СЕРГЕЕВНА</OT_P>
  53. <W_P>2</W_P>
  54. <DR_P>1988-09-02</DR_P>
  55. <OKATOG>76401000000</OKATOG>
  56. <OKATOP>76401000000</OKATOP>
  57. <DOST>1</DOST>
  58. <DOST>3</DOST>
  59. </PERS>
  60. </ZL_LIST>

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

textual
Листинг программы
  1. using System;
  2. using System.Xml;
  3. using System.Collections.Generic;
  4.  
  5.  
  6.  
  7.  
  8. class cyb23 {
  9.     public static void Main() {
  10.         string strXML=@"<?xml version=""1.0"" standalone=""yes""?>
  11.                        <ZL_LIST xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">
  12.                        <ZAP>
  13.                            <N_ZAP>1</N_ZAP>
  14.                            <PR_NOV>0</PR_NOV>
  15.  
  16.                            <PACIENT>
  17.                                <ID_PAC>7</ID_PAC>
  18.                                <VPOLIS>3</VPOLIS>
  19.                                <NPOLIS>7554110888000272</NPOLIS>
  20.                                <ST_OKATO>76000000000</ST_OKATO>
  21.                                <SMO>75001</SMO>
  22.                                <SMO_OGRN>1027501157386</SMO_OGRN>
  23.                                <SMO_OK>76000</SMO_OK>
  24.                                <SMO_NAM>ГК ""ЗАБАЙКАЛМЕДСТРАХ""</SMO_NAM>
  25.                                <NOVOR>0</NOVOR>
  26.                            </PACIENT>
  27.  
  28.                            <SLUCH>
  29.                                <IDCASE>22417</IDCASE>
  30.                                <USL_OK>3</USL_OK>
  31.                                <VIDPOM>31</VIDPOM>
  32.                                <FOR_POM>3</FOR_POM>
  33.                                <LPU>750109</LPU>
  34.                                <LPU_1>1</LPU_1>
  35.                                <PODR>1026</PODR>
  36.                                <PROFIL>53</PROFIL>
  37.                                <DET>0</DET>
  38.                                <NHISTORY>7/2</NHISTORY>
  39.                                <DATE_1>2015-01-30</DATE_1>
  40.                                <DATE_2>2015-01-30</DATE_2>
  41.                                <DS1>Z00.0</DS1>
  42.                                <RSLT>301</RSLT>
  43.                                <ISHOD>304</ISHOD>
  44.                                <PRVS>1</PRVS>
  45.                                <VERS_SPEC>V004</VERS_SPEC>
  46.                                <IDDOKT>055-697-812 10</IDDOKT>
  47.                                <IDSP>29</IDSP>
  48.                                <ED_COL>1</ED_COL>
  49.                                <TARIF>261,14</TARIF>
  50.                                <SUMV>261,14</SUMV>
  51.                                <SUMP />
  52.                            </SLUCH>
  53.                        </ZAP>
  54.                
  55.                        <PERS>
  56.                            <ID_PAC>7</ID_PAC>
  57.                            <FAM>ШЕВЧЕНКО</FAM>
  58.                            <IM>НЕТ</IM>
  59.                            <OT>НЕТ</OT>
  60.                            <W>2</W>
  61.                            <DR>2015-01-24</DR>
  62.                            <FAM_P>ШЕВЧЕНКО</FAM_P>
  63.                            <IM_P>ЕКАТЕРИНА</IM_P>
  64.                            <OT_P>СЕРГЕЕВНА</OT_P>
  65.                            <W_P>2</W_P>
  66.                            <DR_P>1988-09-02</DR_P>
  67.                            <OKATOG>76401000000</OKATOG>
  68.                            <OKATOP>76401000000</OKATOP>
  69.                            <DOST>1</DOST>
  70.                            <DOST>3</DOST>
  71.                        </PERS>
  72.                    </ZL_LIST>";
  73.         XmlDocument d=new XmlDocument();
  74.         d.LoadXml(strXML);
  75.  
  76.         Dictionary<string,string> dInf=new Dictionary<string, string>();
  77.         int k=7;
  78.         XmlNodeList nn=d.SelectNodes(@"//*[ID_PAC="+k+"]");
  79.         foreach (XmlNode n in nn)
  80.             foreach (XmlNode ch in n.ChildNodes) {
  81.                 dInf[ch.Name]=ch.InnerText;
  82.                 Console.WriteLine("{0}: {1}", ch.Name, ch.InnerText);
  83.             }
  84.        
  85.  
  86.         Console.ReadLine();
  87.     }
  88. }

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


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

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

7   голосов , оценка 3.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы