Когда я использую метод SelectSingleNode с моим XmlElement, он по-прежнему читает весь документ, а не внутри моего элемента

У меня есть код, который читает файлы Xml, и у меня есть список InvoiceLine, в котором есть строки Invoice. Мой вопрос заключается в том, что когда я использую SelectSingleNode и ищу специальный тег cbc:ID, он дает мне первый тег cbc:ID в ДОКУМЕНТЕ, которого нет внутри моего XmlElement. Мне интересно, как это возможно и как я могу изменить свой код, чтобы он читался только внутри моего элемента. Спасибо.

     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;
                    }
          }

Он должен сообщить мне идентификатор строки, который идет как 1,2,3... но он приносит мне идентификатор всего счета-фактуры, который находится за пределами моего элемента.


person Ezgi    schedule 11.04.2020    source источник
comment
Двойная косая черта означает поиск от корня. Ваш запрос xpath ищет весь документ.   -  person Charleh    schedule 11.04.2020
comment
можешь поделиться своим xml?   -  person Mohammed Sajid    schedule 11.04.2020


Ответы (1)


Как указал Чарле, это //

Измените код «попробовать» на следующий.

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

    }
person William Walseth    schedule 12.04.2020
comment
Большое спасибо! Я впервые читаю Xml, поэтому понятия не имел. - person Ezgi; 13.04.2020