【发布时间】:2012-12-06 14:05:47
【问题描述】:
我正在尝试使用 Simplexml 解析响应的 XML 部分,而不会丢失“Komponist”或“Künstler”等“角色”信息。
<itemattributes xml:lang="de-DE" xmlns:ns2="http://mws.amazonservices.com/schema/Products/2011-10-01/default.xsd">
<ns2:binding>Audio CD</ns2:binding>
<ns2:brand>MEYER,SABINE/VARIOUS</ns2:brand>
<ns2:creator role="Künstler">Meyer,Sabine</ns2:creator>
<ns2:creator role="Künstler">Various</ns2:creator>
<ns2:creator role="Komponist">Mozart</ns2:creator>
<ns2:creator role="Komponist">Stamitz</ns2:creator>
<ns2:creator role="Komponist">Weber</ns2:creator>
<ns2:creator role="Komponist">Krommer</ns2:creator>
</ns2:itemattributes>
我试过这个:
$nodeList = $attributeSets->getAny();
foreach ($nodeList as $domNode){
$domDocument = new DOMDocument();
$domDocument->preserveWhiteSpace = false;
$domDocument->formatOutput = true;
$xmlData = $domDocument->saveXML($domDocument->importNode($domNode,true));
}
//$xmlData = str_replace("ns2:", "", $xmlData);
$xmlData = new SimpleXMLElement($xmlData);
但是如果我不替换 ns2 属性,我就无法解析 xml。并且取消注释该行,角色属性消失了:
SimpleXMLElement Object
(
[Binding] => Audio CD
[Brand] => MEYER,SABINE/VARIOUS
[Creator] => Array
(
[0] => Meyer,Sabine
[1] => Various
[2] => Mozart
[3] => Stamitz
[4] => Weber
[5] => Krommer
)
)
我想知道,我如何保存这些属性,也许最终我如何将整个 XML 放入一个关联数组。
【问题讨论】:
-
"我无法解析 xml。"为什么?
-
没有错误,但是 $xmlData 为空。可能是带有命名空间的东西
标签: php xml-parsing amazon-web-services