2010-08-13 4 views
4

저는 최근에 PHP와 자바 스크립트에서 XML을 배우기 시작했으며 문제가 발생했습니다.SimpleXML - 스트립 CDATA 태그 (또는 XML에 HTML 마크 업 포함)

문제는 XML 내에 HTML 마크 업을 넣고 PHP를 통해 추출하고 SimpleXML로 XML을 읽는 다른 파일에 HTML을 포함시킬 수 있다는 것입니다. 나는 물론 CDATA 태그가 아직도 그것이 작동하지 않습니다, 그러나

echo $child->asXML();

의 라인을 따라 뭔가를 반향하고있다. 그래서, 내 질문은 방법 중 하나입니다 XML 파서에 의해 무시되지만 HTML 문서에서 사용할 수있는 다른 방법으로 A. HTML 태그를 포함하는 방법입니다 또는 B. 코드에서 CDATA 태그를 제거하는 방법 ?

답변

5

XML 파서에서는 문자열을 다시로드해야하지만 CDATA는 제외해야합니다.

echo simplexml_load_string($child->asXML(), null, LIBXML_NOCDATA) 

괜찮습니까?

0

asXML() 대신 nodeValue 속성을 사용하면 CDATA 태그가 사라집니다.

echo $child->nodeValue; 

같은

뭔가 일을해야합니다.

+0

불행히도 nodeValue가 문자열이나 유용한 것이 아닌 SimpleXMLElement 객체를 반환하는 것으로 보입니다. 아니면 그것을 출력하기 위해 nodeValue에 다른 함수를 호출해야합니까? – Will

+0

@Will은'echo (string) $ child-> nodeValue'를 사용합니까? –

+0

아직 운이 없습니다. 그것은 정규 노드 객체입니다 [나는 생각합니다.] 그래서 어떤 식 으로든 타입 변환 할 수 있을지는 의문입니다. – Will