Save-ve-yük yaklaşım, aynı zamanda Document.normalizeDocument
. This should fix up the document as if it had been save-cycled, without actually really serialising. One thing that should do would be to re-calculate the isID
-ness of attributes from the document type, which you'd hope (ki ([{define HTML DOCTYPE birine ayarlanmış olurdu deneyebilirsiniz 3)]} tarafından değer türü kimliği bir nitelik) olarak loadHTML
.
(Orada Element.setIdAttribute
which can be used to declare one instance of an Attr
bir kimliği içermesi de, ancak ilk önce ele almak olurdu beri size faydası yok.)
Ben bu olsa test değil ve PHP doğru bu DOM Düzey 3 Çekirdek şeyler uygulamak vermedi eğer bana sürpriz olmaz. Benim yorumuyla the spec for isId
, I reckon it should have picked up the id
zaten otomatik olarak tanımını yazın. (Benim kendi DOM uygulama kesinlikle. Yapar) Ama bu durumda kod çalışmış olurdu. Ve ben appendXML
sonra tüm standart olmayan bir yöntem olduğunu, bu nedenle loadXML
veya loadHTML
yaptığınız gibi tip tanımları çözmek zorundadır söyleyecek bir şey yok herhalde.
Yani, belki geçici bir çözüm daha iyi bir plan. Sen @id
ziyade gibi gerçek IDness daha özniteliği tarafından elemanı seçmek için DOMXPath kullanabilirsiniz. Tabii ki bu getElementById
daha yavaş olacaktır, ancak normalizeDocument
daha hızlı umarım.
Ya da sadece XML dizesi-sıçramasını kaybetmek ve eğer yapabilirsen, DOM yöntemlere sadık; o bir oluşturulan elemanın bir başvuru tutmak için önemsiz bulunuyor. (Eğer oluştururken içerik miktarı için DOM yöntemleri çok söz bulmak eğer biraz daha hızlı unsurları oluşturmak için yardımcı işlevlerini kullanabilirsiniz.)