Używam simpleXML do dodania węzła podrzędnego w jednym z moich dokumentów XML ... kiedy robię print_r na moim obiekcie simpleXML, <
jest nadal wyświetlany jako <
w źródle widoku. Jednak po tym, jak uratować ten obiekt z powrotem do XML przy użyciu domDocument The <
przekształca się <
a >
przekształca się >
Jak zapobiec zapisywaniu DOMDocument <as & lt
Wszelkie pomysły jak to zmienić? Próbowałem dodać dom->substituteEntities = false;
, ale to nie pomogło.
//Convert SimpleXML element to DOM and save
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = false;
$dom->substituteEntities = false;
$dom->loadXML($xml->asXML());
$dom->save($filename);
Oto gdzie Używam <:
$new_hint = '<![CDATA[' . $value[0] . ']]>';
$PrintQuestion->content->multichoice->feedback->hint->Passage->Paragraph->addChild('TextFragment', $new_hint);
Problemem jest Używam prostego XML iterację niektórych węzłach w dokumencie XML, a jeśli atrybut dopasowuje dany identyfikator, określony węzeł potomny jest dodawany z CDATA. Następnie po wszystkich żywnościowego, ja zapisać do pliku XML z powrotem przy użyciu domDocument, czyli tam, gdzie < przekształca się & LT, itp
Oto link do mojego całego pliku klasy, dzięki czemu można uzyskać lepszy pomysł na co próbuję osiągnąć. W szczególności odwołaj się do metody hint_insert() na dole.
'<' nie jest po prostu charakter prawny w obrębie elementu XML (o ile jesteś w sekcji CDATA). Co próbujesz osiągnąć? – MvanGeest
Próbuję dodać znacznik CDATA ... Sprawdź oryginalny wpis w celu zaktualizowania kodu – ThinkingInBits
Dzięki za głosowanie w dół! Znacznik CDATA jest niezbędny (chyba, że uciekniesz) w xml, gdy masz "<' and '>" w węźle! Taki sam jak XHTML ... – xandercoded