我尝试创建一个xml文档来访问webservice。我很难得到像我想要的结果xml。 :-)这是我创建此文档的delphicode。
xmlQuery.Active := true;
xmlQuery.Version := '1.0';
xmlQuery.Encoding := 'UTF-8';
lEnvelope := xmlQuery.AddChild('soap:Envelope');
lEnvelope.Attributes['xmlns:soap'] := 'http://schemas.xmlsoap.org/soap/envelope/';
lHeader := lEnvelope.AddChild('soap:Header');
lBruker := lHeader.AddChild('brukersesjon:Brukersesjon');
lValue := lBruker.AddChild('distribusjonskanal');
lValue.Text := 'PTP';
lValue := lBruker.AddChild('systemnavn');
lValue.Text := 'infotorgEG';
生成的xml看起来像这样。
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<brukersesjon:Brukersesjon>
<brukersesjon:distribusjonskanal>PTP</brukersesjon:distribusjonskanal>
<brukersesjon:systemnavn>infotorgEG</brukersesjon:systemnavn>
</brukersesjon:Brukersesjon>
</soap:Header>
</soap:Envelope>
我希望它看起来像这样。
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<brukersesjon:Brukersesjon>
<distribusjonskanal>PTP</distribusjonskanal>
<systemnavn>infotorgEG</systemnavn>
</brukersesjon:Brukersesjon>
</soap:Header>
</soap:Envelope>
我无法弄清楚我做错了什么。你们有人可以帮助我吗?你们有没有人知道一个样本/教程,它创建了一个带有标题和正文的xml文件?
答案 0 :(得分:1)
使用带有IXMLNode.AddChild
的第二个参数的重载NameSpaceURI
:
xmlQuery.Active := true;
xmlQuery.Version := '1.0';
xmlQuery.Encoding := 'UTF-8';
lEnvelope := xmlQuery.AddChild('soap:Envelope');
lEnvelope.Attributes['xmlns:soap'] := 'http://schemas.xmlsoap.org/soap/envelope/';
lHeader := lEnvelope.AddChild('soap:Header');
lBruker := lHeader.AddChild('brukersesjon:Brukersesjon');
lValue := lBruker.AddChild('distribusjonskanal', ''); // <<<-- Here
lValue.Text := 'PTP';
lValue := lBruker.AddChild('systemnavn', ''); // <<<-- And here
lValue.Text := 'infotorgEG';
这会产生您显示为所需输出的输出。
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header><brukersesjon:Brukersesjon>
<distribusjonskanal>PTP</distribusjonskanal>
<systemnavn>infotorgEG</systemnavn>
</brukersesjon:Brukersesjon>
</soap:Header>
</soap:Envelope>