Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Прочитать XML документ. / 9 сообщений из 9, страница 1 из 1
04.11.2013, 11:45
    #38451658
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать XML документ.
Пытаюсь прочитать XML документ.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
 public List<Test> LoadTestData(string xml_file)
        {
            //create list of tests
            List<Test> tests = new List<Test>();
            //create xml navigator and iterator for nodes
            XPathDocument xml_doc = new XPathDocument(xml_file);
            XPathNavigator xml_navigator = xmldoc.CreateNavigator();
            //string xml_str = xml_navigator.OuterXml; //для прверки - пусто
            XPathNodeIterator nodes_iterator = xml_navigator.Select("/Sequence/Test");
            //go through all Test nodes
            while (nodes_iterator.MoveNext())
            {
                Test test = new Test();
                test.TestName = nodes_iterator.Current.GetAttribute("Name", "");
                test.ExeName = nodes_iterator.Current.SelectSingleNode("ExeName").Value;
                string str = nodes_iterator.Current.SelectSingleNode("ExeMode").Value;
                //get execution mode
                if(str == "None")
                    test.exemode = Test.ExeMode.None;
                if (str == "Console")
                    test.exemode = Test.ExeMode.Console;
                if (str == "Visual")
                    test.exemode = Test.ExeMode.Visual;
                //get run mode......
                
                tests.Add(test);
            }
            return tests;
        }


Проблема что nodes_iterator как будто не находит не одного нода (Position=0 и не заходит в while) хотя ноды в документе есть.
...
Рейтинг: 0 / 0
04.11.2013, 15:49
    #38451971
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать XML документ.
Форумные гадалки сейчас в отпуске, перезвоните позже.
...
Рейтинг: 0 / 0
04.11.2013, 16:22
    #38452005
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать XML документ.
МСУФорумные гадалки сейчас в отпуске, перезвоните позже.
вот документ
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<?xml version="1.0" encoding="utf-8"?>
<!--Document created at: 04/11/2013 08:14-->
<Sequence>
  <Test Name="UUT ON">
    <ExeName>C:\Users\Evgeny.Erenburg\Documents\TestStandNet\Zup\Zup_cons\Zup_cons\bin\Debug\Zup_cons.exe</ExeName>
    <ExeMode>None</ExeMode>
    <RunMode>None</RunMode>
    <TestType>None</TestType>
    <Input Name="mode[on,off,restart]" DataType="str" Value="ON" />
    <Input Name="voltage[00.00]" DataType="str" Value="12.00" />
    <Input Name="current[0.000]" DataType="str" Value="1.000" />
    <Output Name="message" DataType="str" Value="" />
  </Test>
  <Test Name="UUT OFF">
    <ExeName>C:\Users\Evgeny.Erenburg\Documents\TestStandNet\Zup\Zup_cons\Zup_cons\bin\Debug\Zup_cons.exe</ExeName>
    <ExeMode>None</ExeMode>
    <RunMode>None</RunMode>
    <TestType>None</TestType>
    <Input Name="mode[on,off,restart]" DataType="str" Value="OFF" />
    <Input Name="voltage[00.00]" DataType="str" Value="12.00" />
    <Input Name="current[0.000]" DataType="str" Value="1.000" />
    <Output Name="message" DataType="str" Value="" />
  </Test>
</Sequence>
...
Рейтинг: 0 / 0
04.11.2013, 17:03
    #38452037
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать XML документ.
1. Проверил, XPathNodeIterator находит указанные ноды и отлично по ним ходит.
2. Работай с xml через пряморукую десериализацию, вместо того гавнокода, который ты тут наваял.
...
Рейтинг: 0 / 0
04.11.2013, 17:26
    #38452062
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать XML документ.
МСУ1. Проверил, XPathNodeIterator находит указанные ноды и отлично по ним ходит.
2. Работай с xml через пряморукую десериализацию, вместо того гавнокода, который ты тут наваял.
это можно назвать "пряморукой десериализацией"?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public object DeSerializeAnObject(string xmlOfAnObject)
        {

            Test myObject = new Test();
            System.IO.StringReader read = new StringReader(xmlOfAnObject);
            System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(myObject.GetType());
            System.Xml.XmlReader reader = new XmlTextReader(read);
            try
            {
                myObject = (Test)serializer.Deserialize(reader);
                return myObject;
            }
            catch
            {
                throw;
            }
            finally
            {
                reader.Close();
                read.Close();
                read.Dispose();
            }
        }


получаю эксэпшн: There is an error in XML document (1, 1).
...
Рейтинг: 0 / 0
04.11.2013, 17:52
    #38452107
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать XML документ.
jenya7, класс Test нужно сгенерировать на основе xsd.
...
Рейтинг: 0 / 0
04.11.2013, 18:09
    #38452124
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать XML документ.
МСУjenya7, класс Test нужно сгенерировать на основе xsd.

спасибо. буду пробовать.
...
Рейтинг: 0 / 0
04.11.2013, 19:43
    #38452218
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать XML документ.
jenya7спасибо. буду пробовать.
Чтобы не пробовать, можно воспользоваться готовым .
...
Рейтинг: 0 / 0
04.11.2013, 19:59
    #38452230
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать XML документ.
спасибо.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Прочитать XML документ. / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]