En basit çözüm, özel basit XML ile InnerXml almak uygulamaktır:
function simplexml_innerXML($node)
{
$content="";
foreach($node->children() as $child)
$content .= $child->asXml();
return $content;
}
Kodunuzda, $body_content = $el->asXml();
$body_content = simplexml_innerXML($el);
ile değiştirin
Ancak, aynı zamanda (sizin için ne arıyor) InnerXml ve OuterXml (şimdi için ne olsun) arasında bir ayrım sunan başka bir API geçiş olabilir. Microsoft, Dom kitaplığındaki bu ayrımı sunuyor ama ne yazık ki PHP DOM değil.
Ben PHP XMLReader API, bu distintion sunar bulundu. ReadInnerXML (bkz.). Bu API işleme XML oldukça farklı bir yaklaşım olsa. Deneyin.
Son olarak, XML alt ağaçlar olarak değil değer olarak veri ayıklamak için bir anlamı olmadığını vurgulamak istiyorum. Eğer sorun doğru API bulma içine koşma nedeni budur. Bu bir değer olarak HTML altağaç depolamak (ve tüm etiketleri kaçış) yerine XML alt ağacı daha fazla 'standart' olacak. Ayrıca bazı HTML synthax her zaman XML uyumlu olmadığını sakının (vs ie,
). Neyse uygulamada, size yaklaşım kesinlikle xml dosyasını düzenlemek için daha uygundur.