Поиск в 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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д