从 PHP DOM 创建 WSDL 输出

Posted

技术标签:

【中文标题】从 PHP DOM 创建 WSDL 输出【英文标题】:Creating WSDL output from PHP DOM 【发布时间】:2020-09-12 01:38:09 【问题描述】:

我是新来的,所以请多多包涵。我正在尝试从 php DOM 创建一个 WSDL 文件,并将其用于我的标签:

$element = $XMLDoc->createElement( 'soap:bodysec');
$XMLDoc->appendChild($element);
$element = $XMLDoc->createElement( 'ns:line', text');
$XMLDoc->appendChild($element);

这给了我: <Bodysec/> <Line> Text </line>

我愿意

<bodysec>
<Line> Text </line>
<\bodysec>

我如何做到这一点?

【问题讨论】:

当它只显示Text时,如果这是在网页上,那么查看源代码,因为其他部分可能只是被视为标记。 btw 你应该DOMDocument:createElementNS() 来创建带有命名空间的元素。 【参考方案1】:

添加第二个元素时,您只是将其附加到文档中,而不是新创建的&lt;bodysec&gt; 元素......

$XMLDoc->appendChild($element);

您需要确定在何处添加任何新元素...

$bodysec = $XMLDoc->createElement( 'soap:bodysec');
$XMLDoc->appendChild($element);
$line = $XMLDoc->createElement( 'ns:line', 'text');
$bodysec->appendChild($line);

我倾向于做的一件事是为我分配的变量使用标签名称,这很有帮助,正如您在最后一行中看到的那样,它显示了将行添加到 bodysec 元素的逻辑。

【讨论】:

将第二行改为:$XMLDoc->appendChild($bodysec);然后它按我想要的方式工作。谢谢

以上是关于从 PHP DOM 创建 WSDL 输出的主要内容,如果未能解决你的问题,请参考以下文章

从 WSDL 文件创建 ASMX Web 服务

Php 创建XML

WCF 生成的 wsdl 与为创建 WCF 服务而提供的原始 wsdl 不同?

PHP实现WebService的简单示例和实现步骤

从 WSDL 文件生成 Web 服务 [关闭]

PHP 原生 DOM 对象操作 XML