Ben HTML gibi eski belgeler bir grup var. Olduğu gibi, onlar HTML gibi görünür, ama HTML bir parçası olmayan ilave yapılmış etiketleri var
<strong>This is an example of a <pseud-template>fake tag</pseud-template></strong>
Ben bu dosyaları ayrıştırmak gerekiyor. PHP mevcut yalnızca araçtır. Belgeler iyi oluşturulmuş XML olan yakın gelmiyor.
Benim orijinal düşünce PHPs DOMDocument üzerinde loadHTML yöntemleri kullanmak oldu. Ancak, bu yöntemler makyaj HTML etiketleri boğulmamak ve dize / dosyayı ayrıştırmak reddeder.
$oDom = new DomDocument();
$oDom->loadHTML("<strong>This is an example of a <pseud-template>fake tag</pseud-template></strong>");
//gives us
DOMDocument::loadHTML() [function.loadHTML]: Tag pseud-template invalid in Entity, line: 1 occured in ....
Ben gelmek mümkün oldum tek çözüm ön-işlem geçersiz etiketlerini kaldırmak ve geçerli bir HTML etiketi (etiket adı bir kimliği ile belki de bir yayılma) ile yerini alacak dize değiştirme fonksiyonları ile dosyaları etmektir.
Daha zarif bir çözüm var mı? DOMDocument geçerli dikkate ek etiketleri bildirmek için bir yolu? PHP için orada farklı, sağlam bir HTML ayrıştırma sınıf / nesne var mı?
(Çok açık değilse, ben burada normal ifadeler geçerli bir çözüm düşünmüyoruz)
Update: Sahte etiketleri bilgiler burada amacın bir parçası, yani Tidy gibi bir şey bir seçenek değildir. Ayrıca, yaptığı bir şeyin peşindeyim bazı düzeyi, hepsi değilse de, ben ilk etapta DOMDocument en loadHTML yöntemi arıyordum neden benim için iyi biçimlilik temizleme,.