dev.net.ua

Українська Спільнота Розробникiв
 
Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

Робота з ХМL на С++

Останнє повідомлення 21-05-2007, 16:19 від akluch. 3 відповіді.
Сортувати: Попереднє Наступне
  •  19-05-2007, 23:50 3118

    Робота з ХМL на С++

    Привіт,

          Для тих кому цікаво: робота з XML з С++ програми здійснюється з допомогою MSXML6. Ось відповідна MSDN документація - http://msdn2.microsoft.com/en-us/library/ms759192.aspx. Якщо будуть питання, буду дуже радий відповісти на них чи допомогти.

    З повагою,


    Aндрій Ключевський / Andriy Klyuchevskyy
    Microsoft Corp.
    View Andriy Klyuchevskyy's profile on LinkedIn

    Ця інформація надається на умовах «як є», без надання будь-яких гарантій і прав. Використовуючи цю інформацію, ви погоджуєтесь з тим, що (і) Майкрософт не несе відповідальності за використання вами цієї інформації й (іі) ви берете на себе весь ризик, пов’язаний з використанням цієї інформації.
  •  21-05-2007, 5:34 3153 у відповідь на 3118

    Re: Робота з ХМL на С++

    У меня как раз есть вопрос, на который не могу найти ответ. Помню, что когда-то находил решение, но не помню где. Собственно вопрос:

    Customer has a problem with XML on Windows.

     

    He send following XML from client (Windows) to server (Windows):

     

    <obj DESCRIPTION="gyro\acompas" />...

     

    String in DESCRIPTION has line feed char or other control symbols.

     

    If this message sends from Windows with msxml4.msi - The MSXML 4.0 Service Pack 2 (Microsoft XML Core Services) installation http://www.microsoft.com/downloads/details.aspx?familyid=3144B72B-B4F2-46DA-B4B6-C5D7485F2B42&displaylang=en - on server side receive <obj DESCRIPTION="gyro&x000A;compas" />.

     

    If this message sends from Windows with msxml6.msi - Microsoft Core XML Services (MSXML) 6.0 http://www.microsoft.com/downloads/details.aspx?familyid=993c0bcf-3bcf-4009-be21-27e85e1857b1&displaylang=en - on server side receive <obj DESCRIPTION="gyro compas" />.

     

    Desired behavior is <obj DESCRIPTION="gyro&x000A;compas" /> on any client with any version of msxml.

     

    Is there any solution to control this behavior of msxml? Please be informed that customer uses 3d party serializer and is not able to rewrite its code.

     


    З повагою,
    Віктор Шатохін [MSFT]

    Ця інформація надається на умовах «як є», без надання будь-яких гарантій і прав. Використовуючи цю інформацію, ви погоджуєтесь з тим, що (і) Майкрософт не несе відповідальності за використання вами цієї інформації й (іі) ви берете на себе весь ризик, пов’язаний з використанням цієї інформації.
  •  21-05-2007, 15:33 3168 у відповідь на 3153

    Re: Робота з ХМL на С++

    Віктор привіт,

         В першу чергу, дуже дякую за добавлення підпису "Microsoft".

        Я спробую глянути, в чому проблема з MSXML 6.0 і обов'язково дам знати.

     

    З повагою,


    Aндрій Ключевський / Andriy Klyuchevskyy
    Microsoft Corp.
    View Andriy Klyuchevskyy's profile on LinkedIn

    Ця інформація надається на умовах «як є», без надання будь-яких гарантій і прав. Використовуючи цю інформацію, ви погоджуєтесь з тим, що (і) Майкрософт не несе відповідальності за використання вами цієї інформації й (іі) ви берете на себе весь ризик, пов’язаний з використанням цієї інформації.
  •  21-05-2007, 16:19 3169 у відповідь на 3153

    Re: Робота з ХМL на С++

    Віктор, привіт знову,

          Я щойно спробував відтворити ситуацію, яка описана в Вашому повідомленні. Я просто зчитую значення атрибуту DESCRIPTION. Мій XML файл виглядає так:

    п>ї<?xml version="1.0" encoding="utf-8" ?>
    <test>
      <obj DESCRIPTION="gyro\acompas">Test</obj>
    </test>

    Я вивів значення атрибуту (як LPTSTR) на консоль, а також продивився у відладчику. В обох випадках значення одне й те саме - "gyro\acompas".

         Напевно вся справа в тому, що я використовую MSXML 6 SP1. Версія файлу msxml6.dll - 6.10.1129.0. У клієнта можливо стоїть MSXML 6 без SP1. MSXML6 SP1 можна завантажити з цього сайту - http://www.microsoft.com/downloads/details.aspx?FamilyID=d21c292c-368b-4ce1-9dab-3e9827b70604&displaylang=en

         Я також роблю створення instance так:

         IXMLDOMDocument **ppxmlDoc;

         HRESULT hr = CoCreateInstance(__uuidof(DOMDocument30), NULL, CLSCTX_INPROC_SERVER, __uuidof(IXMLDOMDocument), (void**)&pxmlDoc);

         Якщо це не допомогло, то будь-ласка повідомте - будемо думати разом. Wink

     

    З повагою,


    Aндрій Ключевський / Andriy Klyuchevskyy
    Microsoft Corp.
    View Andriy Klyuchevskyy's profile on LinkedIn

    Ця інформація надається на умовах «як є», без надання будь-яких гарантій і прав. Використовуючи цю інформацію, ви погоджуєтесь з тим, що (і) Майкрософт не несе відповідальності за використання вами цієї інформації й (іі) ви берете на себе весь ризик, пов’язаний з використанням цієї інформації.
Переглядати як новосний Блог RSS в XML