Имя: Пароль:
IT
 
Атрибут дочернего элемента
0 Маркусс
 
10.06.14
14:33
Каким образом убрать атрибут xmlns у дочернего элемента login?
Чтобы было не <_login xmlns="">*******</_login> , а <_login>...</_login>.


Код:


SoapEnvelope = DOMDocument.createElement("soap:Envelope");
УстановитьАтрибут(SoapEnvelope, "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance";);
УстановитьАтрибут(SoapEnvelope, "xmlns:xsd", "http://www.w3.org/2001/XMLSchema";);
УстановитьАтрибут(SoapEnvelope, "xmlns:soap", "http://schemas.xmlsoap.org/soap/envelope/";);

SoapBody = DOMDocument.createElement("soap:Body");
soapCall = DOMDocument.createElement("DRP_GetSalePoints");

УстановитьАтрибут(soapCall, "xmlns", Протокол+ Host + "/DISTR/");

soapParams = DOMDocument.createElement("_login");
soapParams.Text = "***";
soapCall.appendChild(soapParams);  

soapParams = DOMDocument.createElement("_pass");
soapParams.Text = "***";
soapCall.appendChild(soapParams);  


ДобавитьПодчиненный(soapBody, soapCall);
ДобавитьПодчиненный(SoapEnvelope, SoapBody);
ДобавитьПодчиненный(DOMDocument, SoapEnvelope);

Процедура ПроинициализироватьMSXML2()

    Попытка
        DOMDocument = CreateObject("MSXML2.DOMDocument.4.0");
        
    //    XML_DOM=СоздатьОбъект("MSXML2.DOMDocument.4.0");
    Исключение
        ВывестиСообщениеПользователю("Ошибка при создании объекта MSXML2.DOMDocument");
        ВывестиСообщениеПользователю(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    
    Попытка
        //ServerXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP");
        ServerXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP.4.0")
    Исключение
        ВывестиСообщениеПользователю("Ошибка при создании объекта MSXML2.ServerXMLHTTP");
        ВывестиСообщениеПользователю(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    
    ServerXMLHTTP.OPEN ("POST", Протокол + Host + АдресСервиса, 0);
//    ServerXMLHTTP.OPEN ("POST", "http://jeans.heineken.com/DISTR/DRPSERVICE.asmx";, 1);

    
    ServerXMLHTTP.setRequestHeader("Host", Host);
    ServerXMLHTTP.setRequestHeader("Content-Type","application/soap+xml; charset=utf-8");
    ServerXMLHTTP.setRequestHeader("SOAPAction", "http://jeans.heineken.com/DISTR/DRP_GetSalePoints";);

КонецПроцедуры
1 kokamoonga
 
11.06.14
00:26
(0) в общем случае это решается выставлением значения False для атрибута.

То есть на js это будет так:

e.xmlns = false;

или с jQuery:

e.attr('xmlns', false);


Вероятно что-то подобное нужно осуществить и средствами 1С
2 Маркусс
 
11.06.14
12:14
Надо использовать не  DOMDocument.4.0"), а  DOMDocument.3.0
Большой привет питерскому жадному и глупому "бит"
3 kokamoonga
 
12.06.14
01:24
(2) Какбы речь и не шла о конкретной версии спецификации. Смысл в том, чтобы в рамках имеющегося инструментария присвоить атрибуту значение Ложь, False, 0 или что там будет корректно воспринято движком.