Member 10261487 Ответов: 1

Ссылка на объект не задана в xmlnode. selectsinglenode()


Я пытаюсь получить значения из определенных полей из строки, которая является форматом XML.

мой код:
static void Main(string[] args)
        {
            String str;
            str = "<layer> <auto_delta>null</auto_delta> <frame-number>5236</frame-number> <nb_frames>45001</nb_frames> <frames-left>39765</frames-left> <frame-age>160</frame-age> <producer>  <type>ffmpeg</type>  <filename>media\\JTV.AVI</filename>  <width>720</width>  <height>576</height>  <progressive>true</progressive>  <fps>25</fps> <loop>false</loop> <frame-number>5237</frame-number> <nb-frames>45001</nb-frames>  <file-frame-number>0</file-frame-number>  <file-nb-frames>45001</file-nb-frames> </producer> <background> <producer> <type>empty-producer</type> </producer> </background> <index>0</index></layer>";
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(str);
            string frame_path = "layer/producer";
            var nodes_frame = xmlDoc.SelectNodes(frame_path);

            try
            {
                foreach (XmlNode childrenNode_frame in nodes_frame)
                {
                    Console.WriteLine("Frames: " + childrenNode_frame.SelectSingleNode("//file-nb-frames").Value.ToString() + " Frame Rate: " + childrenNode_frame.SelectSingleNode("//fps").Value.ToString());
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.ToString());
            }

            Console.Read();
        }


Теперь получение объекта исключения повторная ссылка не установлена
Console.WriteLine("Frames: " + childrenNode_frame.SelectSingleNode("//file-nb-frames").Value.ToString() + " Frame Rate: " + childrenNode_frame.SelectSingleNode("//fps").Value.ToString());
эта линия.

Пожалуйста, помогите мне. Заранее спасибо.

Что я уже пробовал:

Я использовал метод Load (). Чем я получил еще одно исключение, как это: "дополнительная информация: незаконные символы в пути."

1 Ответов

Рейтинг:
0

Rob Philpott

Заменять:

.Value.ToString()

С:
.InnerText