2010-02-01 6 views
0

Je suis en train de mettre une chaîne HTML à l'intérieur du xml avec php comme ceci:balises HTML à l'intérieur xml via php

<?php 
$xml_resource = new SimpleXMLElement('stuff.xml', 0, true); 
$xml_resource->content = '<![CDATA[<u>111111111111111111111111111111111 text</u>]]>'; 
$xml_resource->asXML('stuff.xml'); 
?> 

mais pour une raison quelconque mon fichier xml ressemble à ceci:

<?xml version="1.0"?> <data> 
    <content id="pic1" frame="1" xpos="22" ypos="22" width="11" height="11">&lt;![CDATA[&lt;u&gt;111111111111111111111111111111111 text&lt;/u&gt;]]&gt;</content> </data> 

Merci beaucoup pour votre aide bons messieurs.

Répondre

1

SimpleXML ne peut pas créer de sections CDATA. Cependant, l'attribution simplement le code HTML à un nœud doit être équivalente fonctionnellement:

$xml_resource->content = '<u>111111111111111111111111111111111 text</u>'; 

Bien sûr, seront échappés des caractères spéciaux, et le résultat sera équivalent à l'aide d'une section CDATA.


Si vous voulez absolument créer des sections CDATA, vous devrez utiliser quelque chose comme SimpleDOM pour accéder à la méthode DOM correspondant.

include 'SimpleDOM.php'; 

$xml_resource = new SimpleDOM('stuff.xml', 0, true); 
$xml_resource->content = ''; 
$xml_resource->content->insertCDATA('<u>111111111111111111111111111111111 text</u>'); 
$xml_resource->asXML('stuff.xml'); 
Questions connexes