主题: 用KindEditor编辑XML文档的问题
作者: moutan, 发布日期: 2010-11-10 09:05:18, 浏览数: 5724

我想用KindEditor编辑XML文档,但是KindEditor默认将lt gt 转化为< >,我应该怎么做呢?

 

<textarea>

<pre>
 
 &lt;?xml version="1.0"?&gt;
&lt;soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"&gt;

  &lt;soap:Body xmlns:m="http://www.example.org/stock"&gt;
    &lt;m:GetStockPrice&gt;
      &lt;m:StockName&gt;IBM&lt;/m:StockName&gt;
    &lt;/m:GetStockPrice&gt;
  &lt;/soap:Body&gt;
 
&lt;/soap:Envelope&gt;
SOAP 响应:
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

&lt;?xml version="1.0"?&gt;
&lt;soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"&gt;

  &lt;soap:Body xmlns:m="http://www.example.org/stock"&gt;
    &lt;m:GetStockPriceResponse&gt;
      &lt;m:Price&gt;34.5&lt;/m:Price&gt;
    &lt;/m:GetStockPriceResponse&gt;
  &lt;/soap:Body&gt;
 
&lt;/soap:Envelope&gt;
</pre>
   </textarea>

作者: Roddy, 发布日期: 2010-11-10 09:28:20
放在<textarea></textarea>里的时候需要转移字符,PHP的话用htmlspecialchars函数。
回复
作者: moutan, 发布日期: 2010-11-10 09:49:59

我的需求是这样的:

插入功能:用PHP插入的时候没有问题

然后编辑(回显):这个时候如果用escape的话,会将所有的代码转换成类似于&lt; &gt;,

回复
作者: Roddy, 发布日期: 2010-11-10 14:15:07

textarea里放HTML时没有<>&这样的字符是正常的,出现<>&字符是错误的写法,不管什么情况都需要escape。

错误的写法:

<textarea><h1>标题</h1></textarea>

正确的写法,解析HTML。

<textarea>&lt;h1&gt;标题&lt;/h1&gt;</textarea>

正确的写法,直接显示HTML。

<textarea>&amp;lt;h1&amp;gt;标题&amp;lt;/h1&amp;gt;</textarea>

也就是说,编辑器里解析HTML:需要escape一次。编辑器里直接显示HTML代码:需要escape两次。原因其实很简单,因为<textarea>标签也属于HTML,中间直接放HTML代码会产生歧义。比如放一个<textarea>后出现这样的情况,浏览器不知道怎么处理了。

<textarea><textarea></textarea>

 

 

回复
发表新帖 发表回复