如何使用 PHP SimpleXMLElement 删除名称空间?
How to remove namespace with PHP SimpleXMLElement?
我有一个 XML 结构,需要看起来像这样才能工作:
<yq1:ZwsCreateInfoRec xmlns:yq1="urn:test-com:document:test:soap:functions:mc-style">
<ItPrice>1337</ItPrices>
</yq1:ZwsCreateInfoRec>
为了尝试实现这一点,我使用了 SimpleXMLElement,如下所示:
$xml = SimpleXMLElement('<yq1:ZwsCreteMaterialFrRef xmlns:yq1="urn:test-com:document:test:soap:functions:mc-style"></yq1:ZwsCreteMaterialFrRef>');
$xml->addChild('ItPrice', '1337');
当我现在 运行 $xml->asXML()
它向我显示了这个(注意 ItPrice 节点上的命名空间):
<yq1:ZwsCreateInfoRec xmlns:yq1="urn:test-com:document:test:soap:functions:mc-style">
<yq1:ItPrice>1337</yq1:ItPrices>
</yq1:ZwsCreateInfoRec>
出于某种原因,如果我在子节点上有这样的名称空间,WebService 将无法工作,但如果我删除它们,它就可以工作。有什么方法可以删除它,还是我必须将其作为字符串遍历并手动删除它们?
谢谢
您可以为 addChild 方法使用带空白值的第三个参数。 $xml->addChild('ItPrice', '1337', '');
$xml = new SimpleXMLElement('<yq1:ZwsCreteMaterialFrRef xmlns:yq1="urn:test-com:document:test:soap:functions:mc-style"></yq1:ZwsCreteMaterialFrRef>');
$namespaces = $xml->getDocNamespaces();
$xml->addChild('ItPrice', '1337', '');
echo $xml->asXml();
我有一个 XML 结构,需要看起来像这样才能工作:
<yq1:ZwsCreateInfoRec xmlns:yq1="urn:test-com:document:test:soap:functions:mc-style">
<ItPrice>1337</ItPrices>
</yq1:ZwsCreateInfoRec>
为了尝试实现这一点,我使用了 SimpleXMLElement,如下所示:
$xml = SimpleXMLElement('<yq1:ZwsCreteMaterialFrRef xmlns:yq1="urn:test-com:document:test:soap:functions:mc-style"></yq1:ZwsCreteMaterialFrRef>');
$xml->addChild('ItPrice', '1337');
当我现在 运行 $xml->asXML()
它向我显示了这个(注意 ItPrice 节点上的命名空间):
<yq1:ZwsCreateInfoRec xmlns:yq1="urn:test-com:document:test:soap:functions:mc-style">
<yq1:ItPrice>1337</yq1:ItPrices>
</yq1:ZwsCreateInfoRec>
出于某种原因,如果我在子节点上有这样的名称空间,WebService 将无法工作,但如果我删除它们,它就可以工作。有什么方法可以删除它,还是我必须将其作为字符串遍历并手动删除它们?
谢谢
您可以为 addChild 方法使用带空白值的第三个参数。 $xml->addChild('ItPrice', '1337', '');
$xml = new SimpleXMLElement('<yq1:ZwsCreteMaterialFrRef xmlns:yq1="urn:test-com:document:test:soap:functions:mc-style"></yq1:ZwsCreteMaterialFrRef>');
$namespaces = $xml->getDocNamespaces();
$xml->addChild('ItPrice', '1337', '');
echo $xml->asXml();