Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
3 / 3 / 2
Регистрация: 26.02.2014
Сообщений: 552

В чем отличие двух файлов

26.11.2019, 16:26. Показов 3050. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день кто сможет подсказать в чем отличие двух файлов
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="UTF-8"?>
<order xmlns="urn:oms.order" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oms.order order-v5.2.xsd">
    <shoes>
        <productGroupe>shoes</productGroupe>
        <contactPerson>Каспаров_Гайк_Викторович</contactPerson>
        <releaseMethodType>REMAINS</releaseMethodType>
        <createMethodType>SELF_MADE</createMethodType>
        <contractNumber>КМ_О_02144_19</contractNumber>
        <contractDate>2019-10-03</contractDate>
        <products>
             <product>
        <gtin>04610051520011</gtin>
        <quantity>1</quantity>
        <serialNumberType>OPERATOR</serialNumberType>
        <templateId>1</templateId>
      </product>
        </products>
    </shoes>
</order>
этот файл взят с сайта и значения изменены
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<order xmlns="urn:oms.order" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oms.order order-v5.2.xsd" >
  <shoes>
    <productGroupe>shoes</productGroupe>
    <contactPerson>Каспаров_Гайк_Викторович</contactPerson>
    <releaseMethodType>IMPORT</releaseMethodType>
    <createMethodType>SELF_MADE</createMethodType>
    <contractNumber>КМ_О_02144_19</contractNumber>
    <contractDate>2019-10-03</contractDate>
    <products>
      <product>
        <gtin>4610051520011</gtin>
        <quantity>1</quantity>
        <serialNumberType>OPERATOR</serialNumberType>
        <templateId>1</templateId>
      </product>
    </products>
  </shoes>
</order>
этот файл сформирован программой не могу понять в чем разница, первый загружается на сайт второй нет

Добавлено через 17 минут
так формируеться в программе
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
      string xmlns, xsi, schemaLocation;
                xmlns = "urn:oms.order";
                xsi = "http://www.w3.org/2001/XMLSchema-instance";
                schemaLocation = "urn:oms.order order-v5.0.xsd";
                XmlDocument kizgtin = new XmlDocument();
                XmlDeclaration XmlDec = kizgtin.CreateXmlDeclaration("1.0", "utf-8", null);
                kizgtin.AppendChild(XmlDec);
                XmlElement ElementDatabase = kizgtin.CreateElement("order");
                ElementDatabase.SetAttribute("xmlns", xmlns);
                ElementDatabase.SetAttribute("xmlns:xsi", xsi);
                ElementDatabase.SetAttribute("xsi:schemaLocation", schemaLocation.ToString()); 
                kizgtin.AppendChild(ElementDatabase);
 
                XmlElement unify = kizgtin.CreateElement("shoes");
                ElementDatabase.AppendChild(unify);
 
                XmlElement gln = kizgtin.CreateElement("productGroupe");
                gln.InnerText = "shoes";
                unify.AppendChild(gln);
 
                XmlElement persone = kizgtin.CreateElement("contactPerson");
                persone.InnerText = label2.Text;
                unify.AppendChild(persone);
 
 
                XmlElement releaseMethodType = kizgtin.CreateElement("releaseMethodType");
                releaseMethodType.InnerText = label6.Text;
                unify.AppendChild(releaseMethodType);
 
                XmlElement method = kizgtin.CreateElement("createMethodType");
                method.InnerText = label3.Text;
                unify.AppendChild(method);
 
                XmlElement contract = kizgtin.CreateElement("contractNumber");
                contract.InnerText = label1.Text;
                unify.AppendChild(contract);
 
 
                XmlElement date = kizgtin.CreateElement("contractDate");
                date.InnerText = label5.Text;
                unify.AppendChild(date);
 
                XmlElement products = kizgtin.CreateElement("products");
                unify.AppendChild(products);
                for (int i = 5; i < dataGridView1.Rows.Count; i++)
                {
                    XmlElement product = kizgtin.CreateElement("product");
                    products.AppendChild(product);
 
                    XmlElement gtin = kizgtin.CreateElement("gtin");
                    gtin.InnerText = Convert.ToString(dataGridView1.Rows[i].Cells[1].Value.ToString());
                    product.AppendChild(gtin);
 
 
                    XmlElement quantity = kizgtin.CreateElement("quantity");
                    quantity.InnerText = Convert.ToString(dataGridView1.Rows[i].Cells[0].Value.ToString());
                    product.AppendChild(quantity);
 
 
                    XmlElement serialNumberType = kizgtin.CreateElement("serialNumberType");
                    serialNumberType.InnerText = label4.Text;
                    product.AppendChild(serialNumberType);
 
 
                    XmlElement templateId = kizgtin.CreateElement("templateId");
                    templateId.InnerText = "1";
                    product.AppendChild(templateId);
                }
1
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.11.2019, 16:26
Ответы с готовыми решениями:

В чём отличие в двух этих видах инициализаций к классу?
Добрый день есть три формы Form1, Form2 и Form3 из 1-ой формы можно вызвать 2-ю и 3-ю. Ну так вот, в форме 2 форма 1 инициализируется как: ...

В чем отличие кода ?
// Связываем все события щелчок на кнопках-цифрах с обработчиком ЦИФРА: this.button1.Click = this.button1.Click + new...

В чем отличие InitializeComponent от Form_Load
public Form1() { InitializeComponent(); } от события form load?

16
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
26.11.2019, 16:40
menafis, у нас тут задание - найди 5 отличий? ну ладно, в первой строке регистр кодировки, во второй строке пробел перед тегом закрытия
0
28 / 13 / 8
Регистрация: 19.11.2015
Сообщений: 129
26.11.2019, 17:12
1. Кодировка UTF-8
2. Пробел на 2 строке перед ">"
3. 8 строка - "IMPORT" вместо "REMAINS"
4. 14 строка - "04610051520011" вместо "4610051520011" - где-то нолик потерял в начале.

А если по сути вопроса:
Открой файл Блокнотом, и просто нажми Save - если заработало, то пропиши код в конце:
C#
1
2
3
XmlDocument doc = new XmlDocument();
doc.Load(@"../file.xml");
doc.Save(@"../file.xml");
Я фиг знает почему, но салкнулся с этой же проблемой, но решил так.
Правда я запихивал текст посредством File.WriteAllText(@"../file.xml", s);
0
3 / 3 / 2
Регистрация: 26.02.2014
Сообщений: 552
26.11.2019, 17:18  [ТС]
AndreyVorobey, сейчас методом эксперементов проверил различия если и есть то они роли не играют, я вставляю содежимое которое не загружалось в другой файл и все загружается. Вам не известно какие могут быть причины что именно файл из программы самописной может не загружаться

Добавлено через 3 минуты
NikolaSN, не помогло

Добавлено через 1 минуту
реально создал новый пустой xml и залил туда содержимое и все загрузилось
0
28 / 13 / 8
Регистрация: 19.11.2015
Сообщений: 129
26.11.2019, 17:24
если это не секретно, можешь кинуть 2 файлика: сформированный из программы и "исходник" что грузится?
ибо текст это одно а кодировки файлов это другое.

Добавлено через 3 минуты
Цитата Сообщение от menafis Посмотреть сообщение
создал новый пустой xml
а ты создавал файл с какой кодировкой через Блокнот?
0
3 / 3 / 2
Регистрация: 26.02.2014
Сообщений: 552
26.11.2019, 17:36  [ТС]
а как указать кодировку без BOM

Добавлено через 3 минуты
string path = MyDocuments + "\\shoesxml\\Опись" + Settings.Default["lico"] + " в честный знак от" + DateTime.Now.ToString("yy.MM.dd - HH.mm.ss") + ".xml ";
kizgtin.Save(path);
0
Эксперт .NET
 Аватар для Usaga
14138 / 9362 / 1350
Регистрация: 21.01.2016
Сообщений: 35,194
26.11.2019, 17:41
Цитата Сообщение от menafis Посмотреть сообщение
а как указать кодировку без BOM
А она в первой строке указана. Но в 99% XML'ки идут в UTF-8.
0
3 / 3 / 2
Регистрация: 26.02.2014
Сообщений: 552
26.11.2019, 19:00  [ТС]
Usaga, просто я открываю файл из проги там стоит UTF-8, а на файле который загружаеться стоит UTF-8 без BOM

Добавлено через 42 секунды
проверяю и меняю через notepad ++
0
Эксперт .NET
 Аватар для Usaga
14138 / 9362 / 1350
Регистрация: 21.01.2016
Сообщений: 35,194
27.11.2019, 06:22
menafis, сложно понять, что вы хотите. В коде BOM можно откинуть, как руками (сделать substring), так и во время чтения из файла указав кодировку правильным образом.
0
3 / 3 / 2
Регистрация: 26.02.2014
Сообщений: 552
27.11.2019, 11:23  [ТС]
Usaga, вот так у меня сохраняется xml
C#
1
2
 string path = MyDocuments + "\\Chip\\v_mr\\Опись" + Settings.Default["users_fio"] + " в маркировку от" + DateTime.Now.ToString("yy.MM.dd - HH.mm.ss") + ".xml ";
                kizgtin.Save(path);
вот так он создается
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
                string xmlns, xsi, schemaLocation;
                xmlns = "urn:oms.order";
                xsi = "http://www.w3.org/2001/XMLSchema-instance";
                schemaLocation = "urn:oms.order order-v5.0.xsd";
                XmlDocument kizgtin = new XmlDocument();
                XmlDeclaration XmlDec = kizgtin.CreateXmlDeclaration("1.0", "UTF-8", null);
                kizgtin.AppendChild(XmlDec);
                XmlElement ElementDatabase = kizgtin.CreateElement("order");
                ElementDatabase.SetAttribute("xmlns", xmlns);
                ElementDatabase.SetAttribute("xmlns:xsi", xsi);
                ElementDatabase.SetAttribute("xsi:schemaLocation", schemaLocation.ToString()); 
                kizgtin.AppendChild(ElementDatabase);
 
                XmlElement unify = kizgtin.CreateElement("shoes");
                ElementDatabase.AppendChild(unify);
 
                XmlElement gln = kizgtin.CreateElement("productGroupe");
                gln.InnerText = "shoes";
                unify.AppendChild(gln);
 
                XmlElement persone = kizgtin.CreateElement("contactPerson");
                persone.InnerText = label2.Text;
                unify.AppendChild(persone);
 
 
                XmlElement releaseMethodType = kizgtin.CreateElement("releaseMethodType");
                releaseMethodType.InnerText = label6.Text;
                unify.AppendChild(releaseMethodType);
 
                XmlElement method = kizgtin.CreateElement("createMethodType");
                method.InnerText = label3.Text;
                unify.AppendChild(method);
 
                XmlElement contract = kizgtin.CreateElement("contractNumber");
                contract.InnerText = label1.Text;
                unify.AppendChild(contract);
 
 
                XmlElement date = kizgtin.CreateElement("contractDate");
                date.InnerText = label5.Text;
                unify.AppendChild(date);
 
                XmlElement products = kizgtin.CreateElement("products");
                unify.AppendChild(products);
                for (int i = 5; i < dataGridView1.Rows.Count; i++)
                {
                    XmlElement product = kizgtin.CreateElement("product");
                    products.AppendChild(product);
 
                    XmlElement gtin = kizgtin.CreateElement("gtin");
                    gtin.InnerText = Convert.ToString(dataGridView1.Rows[i].Cells[1].Value.ToString());
                    product.AppendChild(gtin);
 
 
                    XmlElement quantity = kizgtin.CreateElement("quantity");
                    quantity.InnerText = Convert.ToString(dataGridView1.Rows[i].Cells[0].Value.ToString());
                    product.AppendChild(quantity);
 
 
                    XmlElement serialNumberType = kizgtin.CreateElement("serialNumberType");
                    serialNumberType.InnerText = label4.Text;
                    product.AppendChild(serialNumberType);
 
 
                    XmlElement templateId = kizgtin.CreateElement("templateId");
                    templateId.InnerText = "1";
                    product.AppendChild(templateId);
                }
после сохранения я его открываю через notepad++ и кодировка стоит UTF-8

Добавлено через 39 секунд
как выставить при сохранении UTF-8 без BOM

Добавлено через 47 минут
Если я делаю вот так
C#
1
2
3
4
5
6
7
8
 XmlWriterSettings settings = new XmlWriterSettings();
                settings.Encoding = new UTF8Encoding(false);
                settings.Indent = true;
 
                using (XmlWriter writer = XmlWriter.Create(path, settings))
                {
                    kizgtin.Save(writer);
                }
то ошибка "Префикс "" не может быть предопределн с "" на "urn:oms.order" в нутри того же начального элемента

Добавлено через 5 минут
а как показали эксперименты проблема в строке ElementDatabase.SetAttribute("xmlns", "urn:oms.order"); если ее коменчю все создается

Добавлено через 38 минут
Все решил проблему тему можно закрывать
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
27.11.2019, 12:50
Лучший ответ Сообщение было отмечено menafis как решение

Решение

menafis, у тебя в начале созданного документа было 3 байта (EF BB BF) соответствующие маркеру последовательности байтов кодировки?
1
3 / 3 / 2
Регистрация: 26.02.2014
Сообщений: 552
27.11.2019, 12:57  [ТС]
AndreyVorobey, да
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
27.11.2019, 13:01
menafis, как решил?
0
3 / 3 / 2
Регистрация: 26.02.2014
Сообщений: 552
27.11.2019, 13:21  [ТС]
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 XDocument kizgtin = new XDocument();
                XNamespace xNamespace = "urn:oms.order";
                XNamespace xsi = "http://www.w3.org/2001/XMLSchema-instance";
                XElement order = new XElement(
                    xNamespace + "order",
                    new XAttribute("xmlns", "urn:oms.order"),
                    new XAttribute(XNamespace.Xmlns + "xsi", "http://www.w3.org/2001/XMLSchema-instance"),
                    new XAttribute(xsi + "schemaLocation", "urn:oms.order order-v5.0.xsd"));
                XElement shoes = new XElement(xNamespace + "shoes");
                XElement productGroupe = new XElement(xNamespace + "productGroupe", "shoes");
                XElement contactPerson = new XElement(xNamespace + "contactPerson", label2.Text);
                XElement releaseMethodType = new XElement(xNamespace + "releaseMethodType", label6.Text);
                XElement createMethodType = new XElement(xNamespace + "createMethodType", label3.Text);
                XElement contractNumber = new XElement(xNamespace + "contractNumber", label1.Text);
                XElement contractDate = new XElement(xNamespace + "contractDate", label5.Text);
                XElement products = new XElement(xNamespace + "products");
                 for (int i = 5; i < dataGridView1.Rows.Count; i++)
                 {
                    XElement product = new XElement(xNamespace + "product");
                    products.Add(product);
                    XElement gtin = new XElement(xNamespace + "gtin", 0 + dataGridView1.Rows[i].Cells[1].Value.ToString());
                    product.Add(gtin);
                    XElement quantity = new XElement(xNamespace + "quantity", Convert.ToString(dataGridView1.Rows[i].Cells[0].Value.ToString()));
                    product.Add(quantity);
                    XElement serialNumberType = new XElement(xNamespace + "serialNumberType", label4.Text);
                    product.Add(serialNumberType);
                    XElement templateId = new XElement(xNamespace + "templateId","1");
                    product.Add(templateId);
                    //dataGridView1.Rows.RemoveAt(i);
                  //  dataGridView1.Rows.Remove(dataGridView1.Rows[i]);
                    counts++;
                    if (counts == 10)
                    {
                        break;
                    }
                }
                shoes.Add(productGroupe);
                shoes.Add(contactPerson);
                shoes.Add(releaseMethodType);
                shoes.Add(createMethodType);
                shoes.Add(contractNumber);
                shoes.Add(contractDate);
                shoes.Add(products);
                order.Add(shoes);
                kizgtin.Add(order);
                string path = MyDocuments + "\\shoesxml\\Опись" + Settings.Default["lico"] + " в честный знак от" + DateTime.Now.ToString("yy.MM.dd - HH.mm.ss") + " "+counts.ToString()+"шт.xml ";
                XmlWriterSettings settings = new XmlWriterSettings();
                settings.Encoding = new UTF8Encoding(false);
                settings.Indent = true;
 
                using (XmlWriter writer = XmlWriter.Create(path, settings))
                {
                    kizgtin.Save(writer);
                }
файл в кодировке без BOM

Добавлено через 58 секунд
C#
1
2
3
4
5
6
7
8
 XmlWriterSettings settings = new XmlWriterSettings();
                settings.Encoding = new UTF8Encoding(false);
                settings.Indent = true;
 
                using (XmlWriter writer = XmlWriter.Create(path, settings))
                {
                    kizgtin.Save(writer);
                }
это и убирает кодировку
0
0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 2
05.12.2019, 10:25
Здравствуйте menafis!
Извините, что не по теме.
А у Вас при импорте ФИО контактного лица передается?
У меня файл отправляется, но если ФИО написано кириллицей то в поле "Контактное лицо" пусто.
0
3 / 3 / 2
Регистрация: 26.02.2014
Сообщений: 552
05.12.2019, 12:58  [ТС]
bar3d, проблема в том что русский язык не воспринимает, в чем причина пока не разобрался
0
0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 2
05.12.2019, 13:07
Подписал без ФИО. Файл обработался. Метки получил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.12.2019, 13:07
Помогаю со студенческими работами здесь

В чем отличие SynchronizationContext и Dispatcher
Всем доброго времени суток. Заметил что на форуме в ответах многие используют класс SynchronizationContext. Я в своем коде всегда...

Проверка двух строк на одно отличие
Как проверить две строки на то, отличаются ли они друг от друга на один символ ?

В чем отличие в работе двух команд?
В чем отличие в работе двух команд? a:=Memo1.Lines.Strings; a:=Memo1.Lines;

В чем отличие сборки exe и dll файлов
Извините если пишу не по тематике, подумал, что здесь это более актуально, чем в других темах на форуме. В общем вопрос аналогичен названию...

В чем отличие файлов последовательного доступа от прямого?
Есть программа, которая записывает в файл две строки с клавиатуры как в файл последовательного доступа. Нужно изменить файл на файл прямого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru