locked
Reading Inner Text from an XML File RRS feed

  • Question

  • Hi please any one help me how to Code to get inner text value from below XML File

    <?xml version="1.0" ?>
    - <CDF>
    - <UTILITYTYPE CODE="1">
    - <D1>
      <G1>09653200</G1>
      <G2>07-05-2013 18:23:39</G2>
      <G3>07-05-2013 18:28:05</G3>
      <G7>1</G7>
      <G8>1</G8>
      <G13>1</G13>
      <G14>5-30</G14>
      <G15>WC(3ph-4W)</G15>
      <G17>NrB03.03</G17>
      <G22 CODE="3" NAME="L&T" />
      <G24>Mains</G24>
      <G27>VALID</G27>
      <G30>2.5</G30>
      <G31>2.00.03.00</G31>
      <G32>38</G32>
      <G33>MM002</G33>
      <G1193>WholeCurrent</G1193>
      <G1194>Full Data</G1194>
      <G1195>1000</G1195>
      <G1196>1</G1196>
      <G1197>07-05-2013 18:23:39</G1197>
      <G1199>A000</G1199>
      </D1>
    - <D2>
      <INSTPARAM CODE="P1-2-1-1-0" VALUE="222.38" UNIT="V" />
      <INSTPARAM CODE="P1-2-2-1-0" VALUE="0" UNIT="V" />
      <INSTPARAM CODE="P1-2-3-1-0" VALUE="0" UNIT="V" />
      <INSTPARAM CODE="P2-1-1-1-0" VALUE="0" UNIT="A" />
      <INSTPARAM CODE="P2-1-2-1-0" VALUE="0" UNIT="A" />
      <INSTPARAM CODE="P2-1-3-1-0" VALUE="0" UNIT="A" />
      <INSTPARAM CODE="P8-1-0-0-0" VALUE="" />
      <INSTPARAM CODE="P8-2-0-0-0" VALUE="" />
      <INSTPARAM CODE="P3-2-1-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-3-1-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P4-1-1-0-0" VALUE="" />
      <INSTPARAM CODE="P3-2-2-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-3-2-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P4-2-1-0-0" VALUE="" />
      <INSTPARAM CODE="P3-2-3-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-3-3-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P4-3-1-0-0" VALUE="" />
      <INSTPARAM CODE="P3-2-4-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-3-4-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-4-4-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P4-4-1-0-0" VALUE="" />
      <INSTPARAM CODE="P9-1-0-0-0" VALUE="51.33" UNIT="Hz" />
      </D2>
     <</CDF>
    - </UTILITYTYPE CODE="1">

    From this file i need to collect all the Value  from every<INSTPARAM> present in D2 Tag.

    I want C# code for windows application

    Example: I want 51.33 from <INSTPARAM CODE="P9-1-0-0-0" VALUE="51.33" UNIT="Hz" />

    Wednesday, May 8, 2013 12:09 PM

Answers

  • Your xml file is not well formed.

    Hope this helps as start.

                XDocument objDoc = XDocument.Load(@"C:\Sites\stringEx\abc.xml");
                var query = from x1 in objDoc.Descendants("INSTPARAM")
                            select new
                            {
                                code = x1.Attribute("CODE").Value.ToString(),
                           
                                value = x1.Attribute("VALUE").Value.ToString(),
                            };
               foreach(var x in query)
               {
                   Console.WriteLine("{0} {1}   ",x.code,x.value);
               }

     Modified your xml file like below..

    <?xml version="1.0" ?>
      <CDF>
      <UTILITYTYPE CODE="1">
      <D2>
      <INSTPARAM CODE="P1-2-1-1-0" VALUE="222.38" UNIT="V" />
      <INSTPARAM CODE="P1-2-2-1-0" VALUE="0" UNIT="V" />
      <INSTPARAM CODE="P1-2-3-1-0" VALUE="0" UNIT="V" />
      <INSTPARAM CODE="P2-1-1-1-0" VALUE="0" UNIT="A" />
      <INSTPARAM CODE="P2-1-2-1-0" VALUE="0" UNIT="A" />
      <INSTPARAM CODE="P2-1-3-1-0" VALUE="0" UNIT="A" />
      <INSTPARAM CODE="P8-1-0-0-0" VALUE="" />
      <INSTPARAM CODE="P8-2-0-0-0" VALUE="" />
      <INSTPARAM CODE="P3-2-1-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-3-1-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P4-1-1-0-0" VALUE="" />
      <INSTPARAM CODE="P3-2-2-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-3-2-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P4-2-1-0-0" VALUE="" />
      <INSTPARAM CODE="P3-2-3-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-3-3-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P4-3-1-0-0" VALUE="" />
      <INSTPARAM CODE="P3-2-4-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-3-4-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-4-4-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P4-4-1-0-0" VALUE="" />
      <INSTPARAM CODE="P9-1-0-0-0" VALUE="51.33" UNIT="Hz" />
      </D2>
     </UTILITYTYPE>
     </CDF>

    Wednesday, May 8, 2013 12:49 PM

All replies

  • Your xml file is not well formed.

    Hope this helps as start.

                XDocument objDoc = XDocument.Load(@"C:\Sites\stringEx\abc.xml");
                var query = from x1 in objDoc.Descendants("INSTPARAM")
                            select new
                            {
                                code = x1.Attribute("CODE").Value.ToString(),
                           
                                value = x1.Attribute("VALUE").Value.ToString(),
                            };
               foreach(var x in query)
               {
                   Console.WriteLine("{0} {1}   ",x.code,x.value);
               }

     Modified your xml file like below..

    <?xml version="1.0" ?>
      <CDF>
      <UTILITYTYPE CODE="1">
      <D2>
      <INSTPARAM CODE="P1-2-1-1-0" VALUE="222.38" UNIT="V" />
      <INSTPARAM CODE="P1-2-2-1-0" VALUE="0" UNIT="V" />
      <INSTPARAM CODE="P1-2-3-1-0" VALUE="0" UNIT="V" />
      <INSTPARAM CODE="P2-1-1-1-0" VALUE="0" UNIT="A" />
      <INSTPARAM CODE="P2-1-2-1-0" VALUE="0" UNIT="A" />
      <INSTPARAM CODE="P2-1-3-1-0" VALUE="0" UNIT="A" />
      <INSTPARAM CODE="P8-1-0-0-0" VALUE="" />
      <INSTPARAM CODE="P8-2-0-0-0" VALUE="" />
      <INSTPARAM CODE="P3-2-1-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-3-1-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P4-1-1-0-0" VALUE="" />
      <INSTPARAM CODE="P3-2-2-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-3-2-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P4-2-1-0-0" VALUE="" />
      <INSTPARAM CODE="P3-2-3-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-3-3-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P4-3-1-0-0" VALUE="" />
      <INSTPARAM CODE="P3-2-4-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-3-4-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P3-4-4-1-0" VALUE="0" UNIT="k" />
      <INSTPARAM CODE="P4-4-1-0-0" VALUE="" />
      <INSTPARAM CODE="P9-1-0-0-0" VALUE="51.33" UNIT="Hz" />
      </D2>
     </UTILITYTYPE>
     </CDF>

    Wednesday, May 8, 2013 12:49 PM
  • Funny, its just the same xml with the same flaws, Venkat is pointing out, as in this thread by another poser a few hours ago.

    wizend


    • Edited by Wizend Wednesday, May 8, 2013 2:05 PM
    Wednesday, May 8, 2013 2:05 PM
  • Sorry for this and for that thread we did not solved our query.
    Thursday, May 9, 2013 5:03 AM
  • Hi Anil,

    How is it going now? It seems that Venkat786 has solved this issue.


    Bob Shen
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Friday, May 10, 2013 7:34 AM
  • Thanks and its now working fine.....
    Wednesday, May 15, 2013 6:17 AM