PHP - XML中的命名空间 - 使用命名空间启动元素

时间:2017-07-20 09:35:02

标签: php xml

我正在尝试在XML中实现以下格式(使用PHP生成):

<ns0:XmlInterchange xmlns:ns0="http://www.website.com" xmlns:ext="http://www.website.com">
     <ns0:InterchangeInfo>
        <ns0:Date>2017-06-28T11:33:15</ns0:Date>
        <ns0:XmlType>Verbose</ns0:XmlType>
      <ns0:Source>
         <ns0:EnterpriseCode>DSV</ns0:EnterpriseCode>
         <ns0:OriginServer>ESB</ns0:OriginServer>
      </ns0:Source>
      <ns0:EDIOrganisation EDICode="0"/>
   </ns0:InterchangeInfo>
</ns0:XmlInterchange>

所以,现在,我只有这个:

$xml = new DOMDocument('1.0', 'UTF-8');
$xml->formatOutput = true;

$rss = $xml->createElement('ns0');
$rss->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:ns0', 'http://website.com');
$rss->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:ext', 'http://website.com');
$xml->appendChild($rss);

哪个输出:

<ns0 xmlns:ns0="http://website.com" xmlns:ext="http://website.com"/>

上面的问题是XML的开头。它必须是:

 <ns0:XmlInterchange xmlns:ns0="http://website.com" xmlns:ext="http://website.com"/>

如何将:XmlInterchange命名空间添加到标记的开头?

1 个答案:

答案 0 :(得分:1)

您应该使用:

SELECT (count(main_dish)+count(soup_stew)+count(meat_fish)+count(other)) as total FROM foodlist;

而不是

$rss = $xml->createElementNS('ns0', 'ns0:XmlInterchange');