xml - 如何使用 TXMLDocument 手动构造 Soap Envelope (Delphi 2006)

标签 xml delphi delphi-2006 txmldocument

这个问题我已经困扰很长时间了,但我自己无法解决。我也尝试过搜索 Google、Bing 和 stackOverflow?运气不好...

我正在尝试使用 Delphi 2006 的 TXMLDocument 组件手动构造一个肥皂头:

... ... ... ... ... ...

我正在做的是构建一个名为“soap:Envelope”的新元素。在这个新元素中,我创建了三个属性:“xmlns:soap”、“xmlns:xsd”和“xmlns:xsi”。

当我尝试在三个属性中的任何一个中写入值时,我收到以下错误:

尝试修改只读节点。

有人知道如何使用 TXMLDocument 完成这项任务吗?

/布莱恩

最佳答案

下面的代码在这里工作正常:

procedure WriteSoapFile;
var
  Document: IXMLDocument;
  Envelope: IXMLNode;
  Body: IXMLNode;
begin
  Document := NewXMLDocument;
  Envelope := Document.AddChild('soap:Envelope');
  Envelope.Attributes['xmlns:soap'] := 'schemas.xmlsoap.org/soap/envelope/';
  Envelope.Attributes['xmlns:xsd']  := 'w3.org/2001/XMLSchema';
  Envelope.Attributes['xmlns:xsi']  := 'w3.org/2001/XMLSchema-instance';
  Body := Envelope.AddChild('soap:Body');
  Document.SaveToFile('Test.xml');
end;

您应该能够使用 TXMLDocument 而不是 IXMLDocument,它只是接口(interface)周围的组件包装器。

关于xml - 如何使用 TXMLDocument 手动构造 Soap Envelope (Delphi 2006),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4667081/

相关文章:

delphi - Delphi 7 中找不到文件

delphi - TADOQuery 是否有包含客户端索引的扩展

xml - XML 中的命名空间

java - NullPointerException 试图访问 String 资源

xml - 有没有办法使用 XSL 模板转换 XML 文档的 cdata 部分?

python - 获取 Python 对象作为变体

multithreading - 阻止STA线程中的调用(等待,com调用)

javascript - 如何为 WebGL 正确解析 collada 文件? (包括示例)

delphi - Delphi中的宽字符串兼容性问题

Delphi 2006 重构键盘映射