Mit PHP, in HTML-Datei, möchte ich die CDATA
Blöcke in einem Skriptelement entfernen.Wie CDATA-Blöcke in einem Skriptelement zu entfernen?
<script type="text/javascript">
/* <![CDATA[ */
var A=new Array();
..........................
..........................
/* ]]> */
</script>
some text2 ........................
some text3 ........................
some text4 ........................
<script type="text/javascript">
/* <![CDATA[ */
var B=new Array();
..........................
..........................
/* ]]> */
some text5 ........................
Ich habe nicht gefunden, wie & entfernen diese mit XPath-Knoten wählen & PHP DomDocument.
Ich habe versucht, mit diesem regulären Ausdruck $re = '/\/\*\s*<!\[CDATA\[[\s\S]*\/\*\s*\]\]>\s*\*\//i';
Aber diese entfernt alle Text einschließlich der zwischen zwei Blöcken von CDATA.
Als Ergebnis erhalte ich eine leere Zeichenfolge statt
some text2 ........................
some text3 ........................
some text4 ........................
some text5 ........................
Irgendwelche Ideen?
Aktualisierung mit ThW Lösung:
Mit dieser Seite, so scheint es, dass der Text des Abschnitts CDATA ist nicht gut analysiert
libxml_use_internal_errors(true);
$domDoc = new DOMDocument();
$domDoc->loadHTMLFile('https://www.maisons-qualite.com/le-reseau-mdq/recherche-constructeurs-agrees/construction-maison-neuve-centre-val-loire');
libxml_clear_errors();
$xpath = new DOMXpath($domDoc);
foreach($xpath->evaluate('//text()') as $section) {
if ($section instanceof DOMCDATASection) {
print_r($section->textContent);
$section->parentNode->removeChild($section);
}
}
$content = $domDoc->saveHTML();
Ich habe diese textcontent
.....
.....
function updateConstructeurs(list) {
for (var i in list) {
if(list[i]['thumbnail']) {
jQuery('#reseau-constructeurs').append('<div class="reseau-constructeur">' +
'<div class="img" style="background-image:url(' + list[i]['thumbnail'] + ')">
für
function updateConstructeurs(list) {
for (var i in list) {
if(list[i]['thumbnail']) {
jQuery('#reseau-constructeurs').append('<div class="reseau-constructeur">' +
'<div class="img" style="background-image:url(' + list[i]['thumbnail'] + ')"></div>' +
'<h3>' + list[i]['title'] + '</h3>' +
'<a class="btn purple" href="' + list[i]['link'] + '">Accéder à la fiche</a>' +
'</div>');
}
}
}
Und als Ergebnis, statt eine leere Zeichenfolge bekommen, haben wir:
'<h3>' + list[i]['title'] + '</h3>' +
'<a class="btn purple" href="'%20+%20list%5Bi%5D%5B'link'%5D%20+%20'">Accéder à la fiche</a>' +
'</div>');
}
}
}
/* ]]> */
Scheint nicht zu arbeiten. Anzeige "Verarbeitung ..." ohne Ergebnis – LeMoussel
Hm, ich bin mir nicht sicher warum. Versuchen Sie diesen Link: https://regex101.com/r/ZiH3zj/1 –
Gleicher Fehler, aber es ist OK in PHP. Ich poste Ihre Lösung in PHP. – LeMoussel