2011-05-16 7 views
0
$dom = new DOMDocument('1.0'); 
$Rootelement = $dom->createElement('Domain', 'Root element'); 
$dom->appendChild($Rootelement); 

$extraInfo=$dom->createElement('extrainfo'); 
$Rootelement->appendChild($extraInfo); 

$rootTextNode=$dom->createTextNode("Co > S&S "); 
$extraInfo->appendChild($rootTextNode); 

header ("Content-Type:text/xml"); 
echo $dom->saveXML(); 

DOM의 CDATA 섹션에 대한 예제를 시도하고 있습니다. 나는 '>', '&'과 같은 잘못된 문자를 포함하는 ''XML 노드를 만들었지 만 위의 코드 브라우저의 출력이 잘못된 문자 나 XML의 사용법에 오류가 발생하지 않는 것을 볼 때 잘 형성되지 않았습니다. 이 문자를 CDATA 섹션에 보관하지 않으면 팝업을 사용하는 것을 기억합니다.DOM 구문 분석기 - CDATA 쿼리

누군가 내가 누락 된 부분을 도울 수 있습니까? 나 한테는 브라우저에서 오류가 발생하지만 정확한 결과를 얻고 있습니다 !!!

감사합니다, Priti

답변

2

당신은 프로그램 적 DOM을 구성하고 XML로 변환된다.

사용중인 라이브러리는 CDATA 섹션에 텍스트 노드를 래핑하거나 엔티티 (> 등)가있는 XML에서 특수한 의미로 문자를 나타냅니다. 둘 중 하나가 유효하고 동등합니다.

이것은 또한 입니다. 왜 우리는 템플릿 대신 XML 라이브러리를 사용하여 XML 문서를 작성합니다. 그들은 우리 모두를 보살 피고 잘 못된 문서로 끝나는 것을 멈 춥니 다.

+0

+1 그리고 여기서 인코딩됩니다 :'Co > S & S'. – lonesomeday

+0

뭔가를 찾았습니다. CreateTextnode()를 사용하면 xml을 조작하여 동등한 엔터티에 대해 잘못된 문자로 간주합니다. CDATA 섹션에있는 것처럼 그대로 그대로 유지합니다. 두 경우 모두 내가 찾고있는 오류가 사용자에게 표시되지 않습니다. 다비드에게 감사드립니다. – user269867