내 문제가 here를 설명 :
참고하는 AddChild이() "<"와 ">"를 탈출하지만, 그것은 에게 앰퍼샌드 "&을 탈출하지 않습니다 ".
솔루션 제안 php.net (를 htmlentities 또는 htmlcspecialchars)이 좋은 것이 아니다, 그래서 내가 무엇을 salathe 함께했다 제안 :
<?php
class SimpleXMLExtended extends SimpleXMLElement // http://coffeerings.posterous.com/php-simplexml-and-cdata
{
public function addCData($cdata_text)
{
$node= dom_import_simplexml($this);
$no = $node->ownerDocument;
$node->appendChild($no->createCDATASection($cdata_text));
}
}
과 대신을
$values->addChild('marque', '<![CDATA['.$product['manufacturer_name'].']]>');
사용 :
$values->addChild('marque')->addCData($product['manufacturer_name']);
출력은 이제 또 다른 가능성은 SimpleXMLElement는 이중 디코딩을하고 기억하는 것입니다 <![CDATA[Cyril & Nathalie Daniel]]>
참조하십시오. http://stackoverflow.com/questions/6260224/how-to-write-cdata-using-simplexmlelement – salathe
@salathe 실제로 이것이 올바른 일입니다. 하지만 유료 모듈을 수정하지 않기로 했으므로 신속하게 더러운 수정을 할 수있었습니다. –
확실히 빠르고, 더러운 수정은 여전히 코드를 수정하고 있습니다. 어느 쪽이든, 어떻게해야하는지 알 수 있습니다. – salathe