Delphi TXMLDocument中出现意外结果
我试图创建一个xml文档来访问Web服务。我很难得到我想要的结果:这是我创建此文档的代码Delphi TXMLDocument中出现意外结果,delphi,delphi-xe7,txmldocument,Delphi,Delphi Xe7,Txmldocument,我试图创建一个xml文档来访问Web服务。我很难得到我想要的结果:这是我创建此文档的代码 xmlQuery.Active := true; xmlQuery.Version := '1.0'; xmlQuery.Encoding := 'UTF-8'; lEnvelope := xmlQuery.AddChild('soap:Envelope'); lEnvelope.Attributes['xmlns:soap'] := 'http://schemas.xmlsoap.or
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 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文件的示例/教程吗?使用重载的IXMLNode.AddChild,它为NameSpaceURI获取第二个参数:
这将生成显示为所需输出的输出
<?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>
谢谢。这使我在学习使用TXMLDocument的过程中又前进了一步。提示:不要硬编码soap:-冒号分隔的前缀是一个名称空间,如果您将其版本与其他名称空间参数一起使用,则所有XML文档方法都可以为您插入此名称空间。停止使用TXMLDocument来使用Web服务。将WSDL与THTTPRIO结合使用来完成这类任务。我已经尝试过了,但是WSDL的导入失败了。我之前在这里发布了一个关于这个的问题。那么你为什么不处理这个问题呢?