Ich verwende SimpleXML und Xpath, um Elemente aus einem externen UTF-8 XHTML-Dokument zu lesen. Ich wiederhole dann iterativ die Ausgabe der SimpleXML-Funktion asXML(), die bei jedem Element ausgeführt wird, das von einem Xpath-Selektor zurückgegeben wird. Aber die XML-Wagenrücklaufeinheit ist lästig eingefügt nach jeder Zeile meines Codes. Es gibt keine zusätzlichen Zeichen im XHTML-Dokument. Was verursacht das? Es scheint die Art und Weise zu sein, wie ich bin Iteration durch jedes Array-Element von xpath zurückgegeben. Ich bekomme die Entitäten nicht, wenn ich nur ein Element direkt aus SimpleXML asXML() ausgabe (ohne Xpath). PHP: Auto-generierte XML Carriage Return Entities erscheinen mit SimpleXML und Xpath
<?php
$content = new DOMDocument();
$content->loadHTMLFile(CONTENT.html);
$story = simplexml_import_dom($content->getElementById('story'));
$topics = $story->xpath('div[@class="topic"]');
foreach ($topics as $topic) {
$topicContents = $topic->xpath('div/child::node()'); // Array of elements within 'content'.
foreach ($topicContents as $contentElement) {
echo $contentElement->asXML();
}
}
?>
Auszug aus ausgegebenen XHTML-Code mit automatisch generierten XML-Zeilenumbrüche:
<div class="content">
<p>Lorem ipsum dolor sit amet</p>
<h2>Lorem ipsum</h2>
<p>Lorem ipsum dolor sit amet</p>
<ul>
<li>Lorem ipsum</li>
<li>Lorem ipsum</li>
<li>Lorem ipsum</li>