2010-11-22 7 views
2

jquery로 cdata 노드를 설정하는 데 문제가 있습니다. cdata를 얻는 것은 .text() 함수로 쉽게 할 수 있습니다. 그러나 .text ('jquery> 편리한')를 사용하면 cdata 노드를 만들지 않습니다.jquery set xml cdata

이 내 procecure입니다 : 필드 특수 문자의 모든 종류를 포함 할 수 있기 때문에

<formdata> 
    <field id="title"><![CDATA[Some title]]></field> 
    <field id="description"><![CDATA[Some description]]></field> 
</formdata> 

내가 CDATA 노드를 사용 내가 XML에서 양식 데이터 형태로이 같은 뭔가를로드 할 수. 그런 다음 노드 콘텐츠를 .text()로 가져 와서 데이터를로드합니다.

사용자가 양식을 게시하면 XML을 업데이트하고이를 서버에 게시하기 위해 변환으로 변환합니다. 필자는 필드를 게시 할 수 있지만 XML 문서에 넣을 좋은 이유가 있습니다. 모든 것이 잘 작동하지만 사용자가 특수 문자로 일부 입력을 수행하지는 않습니다. 이 난 그래서 CDATA 예전 노드 있지만는 .text() 함수가 제거 (본 예에서 "descriptioon 노드")

domdoc.find('field[id="description"]').text($("#description").val()); 

노드의 값을 설정하는 방법이다. 는 .text()가 &한다에 <을 변경하기 때문에 또한 작동하지 않습니다

domdoc.find('field[id="description"]').text('<![CDATA[' + $("#description").val() + ']]>'); 

이; :이 시도 ALO

누구에게 해결책이 있습니까? 내 영감 <![CDATA[를 추가하지 않고, .....

감사합니다, 사이먼

답변

0

그냥 설정 텍스트를 사라. CDATA는 XML에서 텍스트를 이스케이프하는 방법 중 하나 일 뿐이지 만 jQuery가 이스케이프 처리하므로 다른 방법을 사용할 필요가 없습니다. &lt;<![CDATA[<]]>과 같습니다. XML 애플리케이션의 경우 동일합니다.

+0

감사합니다. porneL, 나는 그런 식으로 알아 내려고 노력할 것입니다. – simon

+0

당신 덕분에 알아 냈습니다! 여전히 이상하게도 cdata 기능을 사용할 수 없습니다. – simon

+0

예를 들어, XML에 HTML을 삽입 할 수 있도록하려면이 방법이 도움이되지 않습니다. 을 클릭하십시오.]]> – Spider

3

간단한 해결책. CData 섹션 노드를 만들고 XML에 추가하십시오. 나는 행운이없이 JQuery .text()로 고생했다. 이것은 환상적이었습니다.