PHP: Bir DOMNode nesneden bir nitelik çıkarma

1 Cevap php

Ben bazı niteliklere sahip bir DOMNode nesne var. $ Düğüm-> nitelikleri haritası girdilerinden birini kaldırmak için hiçbir yöntem vardır bir DOMNamedNodeMap vardır. DOMNode sınıfı ayrıca bir elemanın öznitelikleri kaldırmak için hiçbir yöntem vardır. Ben diğer ilgili sınıfları bir dizi aracılığıyla baktım ve bunların hiçbiri kendi ebeveyninden bir nitelik düğümünü kaldırmak için bir mekanizma sağlamak gibi görünüyor. (DOMNode :: removeChild çalışmaz, ben ona bir DOMAttr nesnesi geçirmek eğer bir "bulunamadı" hata atar.)

Kenara bir yeni DOMNamedNodeMap inşa ve buna tüm özelliklerini ekleyerek except biri ben ... herhangi bir fikir istemiyorum? Teşekkürler.

1 Cevap

Eğer bazı niteliklere sahip bir DOMNode var ise, bir DOMElement olmalıdır. Hangi durumda bunu removeAttribute / removeAttributeNS / removeAttributeNode aramak gerekir.

Bu PHP'nin DOMNamedNodeMap belgeleri getNamedItem [NS] ama bunu yapmanın başka bir yolu olurdu varlığı setNamedItem [NS] ve removeNamedItem [NS], kabul etmediğini biraz meraklı.

Bir DOMAttr başka DOMNode bir çocuk değildir, çünkü DOMNode :: removeChild çalışamaz; 'Bağlıyor' ChildNodes 'için ayrı bir alandır. Bu salt okunur bir özelliktir olarak da :: DOMNode yazmak için kendi üzerine yeni bir NamedNodeMap oluşturamazsınız, bağlıyor.