我有以下代码生成XML:
$dom = new DomDocument('1.0');
...snip adding elements to document...
$xmlout = $dom->saveXML();
$api = "myapi.com/myservice?". trim($xmlout);
问题在于,如果我查看$api
的实际值,它看起来像是
"myapi.com/myservice?"<xml-structure>
而不是
"myapi.com/myservice?<xml-structure>"
当我使用print_r();
打印$ api时,我怀疑这是干扰实际调用api,因为url不正确。我怀疑$dom->saveXML()
正在返回一个关联数组,而不是实际上是一个字符串 - 这是因为如果我回显$ xmlout,它只打印各个节点的值,但不会节点本身。
获取XML的字符串表示形式的最简单方法是什么,包括所有节点的名称等?
答案 0 :(得分:1)
saveXML()
返回一个字符串,而不是一个数组。 http://us3.php.net/manual/en/domdocument.savexml.php
它包含您正在寻找的内容。确保您在源代码视图中查看字符串,而不是在浏览器窗口中查看。浏览器会将所有标记解释为标记而不显示它们,就像它不显示<p>
和其他html标记一样。
另请注意,trim()不会删除标记之间的空格(如果存在),仅在字符串的开头和结尾处 - 而不是字符串中的每一行。