PHP SimpleXML-> addChild - istenmeyen boş ad niteliği

0 Cevap php

Ben alt öğeleri eklemek için SimpleXMLElement (SimpleXMLElement bir alt sınıfıdır aslında bir SimpleXMLIterator) arasında SimpleXML en addChild yöntemi kullanmak çalışılıyor.

Benim sorunum kaynak belge ad alanları olan ve olmayan unsurların bir karışımını içeriyor olmasıdır. İşte simple (hayır cinas amaçlanan) örnek:

<?xml version="1.0" encoding="UTF-8"?>
  <ns1:a xmlns:ns1="http://www.abc.com">
</ns1:a>

PHP kodu:

$it = new SimpleXMLIterator ('./test.xml', 0, true);
$it->addChild('d', 'another!'); // adds new child element to parent's NS
$it->addChild('c', 'no namespace for me!', ''); // puts xmlns="" every time :(

//output xml in response:
header('Content-Type: text/xml');

echo $it->saveXML();

Sorun - Yorum devletler gibi - Ben bir ad ile ebeveyn elemanın içinde hiçbir ad ile bir alt öğe yerleştirmek istiyorsanız, boş bir XML ad her zaman (yukarıdaki PHP kod çıktısı) nitelik almak olduğunu:

<?xml version="1.0" encoding="UTF-8"?>
  <ns1:a xmlns:ns1="http://www.abc.com">
  <ns1:d>another!</ns1:d>
  <c xmlns="">no namespace for me!</c>
</ns1:a>

Her iki web tarayıcıları yanı sıra XML ayrıştırıcıları (örn. Xerces) bu gereksiz biçimlendirme akla görünmüyor, ben biraz can sıkıcı ben bunu yaparken durdurmak için bunu söylemek için görünmüyor bulabilirsiniz.

Herkes bir çözüm var ya da ben fazla tepki duyuyorum?

:}

0 Cevap