名前空間を持つ属性をDOMNodeから削除しようとかなりの時間を費やしましたが、まったく機能していません。
xmlはデータベースから生成され、次のようになります。
<dictionary>
<row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<table>answers</table>
<entity>Answer</entity>
</row>
<row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<table>file_trans</table>
<entity>FileTrans</entity>
</row>
...
</dictionary>
削除しようとしている属性名は明らかに「xmlns:xsi」です。postgres dbはそれを自動的に追加し、そこで削除できなかったので、phpで仕事をしようとしています。
xmlをDOMDocumentとしてロードしてから、すべての行要素に対してforeachサイクルを実行します。
$xml = new DOMDocument();
$xml->loadXML($tablesInXml['xmlelement'], LIBXML_NOBLANKS);
foreach($xml->documentElement->childNodes as $row) {
$row->removeAttribute('xsi'); // not working
$row->removeAttribute('xmlns:xsi'); // not working
...
DOMNodeプロパティ属性をスカウトしようとしましたが、属性がまったく含まれておらず、長さが0でした。
これはphp5.3のバグですか?誰か他に何ができるか知っていますか?
答えてくれてありがとう