jquery 设置 xml cdata
我在使用 jquery 设置 cdata 节点时遇到问题。使用 .text() 函数可以轻松获取 cdata,但如果我使用 .text('jquery >handy') 它不会创建 cdata 节点。
这是我的程序: 我获取 xml 中的表单数据以加载到表单中 像这样的:
<formdata>
<field id="title"><![CDATA[Some title]]></field>
<field id="description"><![CDATA[Some description]]></field>
</formdata>
我使用 cdata 节点,因为字段可以包含各种特殊字符。 然后,我通过使用 .text() 获取节点内容来加载表单中的数据。
如果用户发布表单,我会更新 xml 并将其转换为字符串以将其发布到服务器。我知道我可以只发布字段,但我有一些充分的理由将其放入 xml 文档中。一切都工作得很好,但如果用户使用特殊字符进行一些输入,则不然。 这就是我设置节点值的方式(在本例中为“描述节点”),
domdoc.find('field[id="description"]').text($("#description").val());
因此该节点曾经是 cdata,但 .text() 函数将其删除。我也尝试过这个:
domdoc.find('field[id="description"]').text('<![CDATA[' + $("#description").val() + ']]>');
这也不起作用,因为 .text() 更改 <到>
有人有解决办法吗?我的灵感消失了......
谢谢, 西蒙
I have a problem setting a cdata node with jquery. Getting cdata is easily done with the .text() function, but if I use .text('jquery > handy') it doesn't create a cdata node.
This is my procecure:
I get form data in xml to load in a form
something like this:
<formdata>
<field id="title"><![CDATA[Some title]]></field>
<field id="description"><![CDATA[Some description]]></field>
</formdata>
I use cdata nodes because a field can contain all kinds of special chars.
Then I load the data in the form by getting the node content with .text()
If the user posts the form, I update the xml and convert it to a sting to post it to the server. I know I could just post the fields, but I have some good reasons to put it in an xml document. Everything works very well, but not if the user does some input with special characters.
This is how i set the value of the node (in this example the "descriptioon node")
domdoc.find('field[id="description"]').text($("#description").val());
So the node used to be cdata, but the .text() function removes that. I alo tried this:
domdoc.find('field[id="description"]').text('<![CDATA[' + $("#description").val() + ']]>');
This also doesn't work because .text() changes < to >
does anyone has a solution? My inspiration is gone.....
Thanks,
Simon
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
简单的解决方案。创建一个 CData 节节点并将其附加到您的 XML。我在 JQuery .text() 上苦苦挣扎,但没有运气。这效果太棒了。
Simple solution. Create a CData Section Node and Append it to your XML. I struggled with the JQuery .text() with no luck. This worked fantastic.
只需设置文本,无需添加
。 CDATA 只是对 XML 中的文本进行转义的方法之一,但由于 jQuery 会为您转义,因此您无需使用其他方法。
<
与一样好。对于 XML 应用程序来说,它们是相同的。
Just set text, without adding
<![CDATA[
. CDATA is just one of the ways to escape text in XML, but since jQuery escapes for you, you don't need to use another method.<
is just as good as<![CDATA[<]]>
. For XML applications they're identical.