如何使用 TXMLDocument 手动构造 Soap Envelope (Delphi 2006)
我已经被这个问题困扰很长时间了,但我自己无法解决。我也尝试过搜索 Google、Bing 和 stackOverflow?不走运...
我正在尝试使用 Delphi 2006 的 TXMLDocument 组件手动构造一个肥皂头:
... ... ... ... ... ...
我正在做的是构建一个名为“soap:Envelope”的新元素。在这个新元素中,我创建了三个属性:“xmlns:soap”、“xmlns:xsd”和“xmlns:xsi”。
当我尝试在三个属性中的任何一个中写入值时,我收到以下错误:
尝试修改只读节点。
有谁知道如何使用 TXMLDocument 完成这项任务?
/布莱恩
I've been having this problem for a long time now and I cannot solve it my self. I've tried searching Google, Bing and stackOverflow too? No luck...
I'm trying to construct a soap header manually using the TXMLDocument component of Delphi 2006:
...
...
...
...
...
...
What I'm doing is that I'm constructing a new Element called 'soap:Envelope'. In this new element I'm creating three attribtues called: 'xmlns:soap', 'xmlns:xsd' and 'xmlns:xsi'.
When I'm trying to write a value in any of the three attributes then I'm getting the error below:
Attempt to modify a read-only node.
Does any one know how to do this task using the TXMLDocument?
/Brian
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
以下代码在这里工作正常:
您应该能够使用
TXMLDocument
而不是IXMLDocument
,它只是接口周围的组件包装器。The following code works fine here:
You should be able to use
TXMLDocument
instead ofIXMLDocument
, it is just a component wrapper around the interface.这是我的解决方案,它使用 DeclareNamespace 来声明命名空间:
基于 如何在Delphi中设置文档元素的前缀
Here is my solution, it uses DeclareNamespace to declare namespaces:
Based on the code provided in How to set the prefix of a document element in Delphi