Ezgi
Ezgi

Reputation: 23

When I use SelectSingleNode Method with my XmlElement It Still Reads the Whole Document and Not Inside My Element

I have a code that reads Xml files and I have an InvoiceLine List that had Invoice lines in it. My question is, when I use SelectSingleNode and search for a spesific cbc:ID tag, it brings me the first cbc:ID tag in the DOCUMENT which is not inside my XmlElement. I am wondering how is that possible and how can I change my code so it only reads inside my element.Thanks.

     XmlNodeList elemList = root.GetElementsByTagName("cac:InvoiceLine"); 
                XmlNodeList SatirdakiIskontoList;
                Logoveri.logo_satirsayisi = elemList.Count.ToString(); //faturadaki satır sayısı
                XmlNode satirno1,urunadi,urunkodu,urunmiktari,uruntutari;
                string satirno;

                foreach (XmlElement e in elemList)
                {
                    LOGOSatirVeri Logosatirveri = new LOGOSatirVeri();
                    // Logosatirveri = new LOGOSatirVeri();
                    Logosatirveri.logo_uuid = Logoveri.logo_uuid;

                    try
                    {
                        //MALZEME-HİZMET ADI
                         satirno = e.SelectSingleNode("//*[name()='cac:InvoiceLine']/* 
       [name()='cbc:ID']").InnerText;
                        Logosatirveri.logo_satirno = satirno;
                    }
          }

It should bting me the ID of the line which goes as 1,2,3... but It brings me the Id of the whole Invoice which is outside my element.

Upvotes: 1

Views: 153

Answers (1)

William Walseth
William Walseth

Reputation: 2923

Like Charleh indicated, it's the //

Change your "try" code to the following.

    try
    {
      //MALZEME-HİZMET ADI
      satirno = e.SelectSingleNode("*[name()='cac:InvoiceLine']/*[name()='cbc:ID']").InnerText;
      Logosatirveri.logo_satirno = satirno;

    }

Upvotes: 1

Related Questions