论坛首页 Java版

如果内容里面有xml不允许的内容怎么处理哪?特别是对于rss

浏览 4056 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2005-08-17
xml里面的cdata类型里面,应该不允许包含:
<![CDATA[
]]>

如果用户发表的内容里面包含这些数据,应该如何处理哪?

答案难道是:不用cdata?  cdata是个鸡肋?
   
最后更新时间:2005-08-17
http://www.theserverside.net/articles/showarticle.tss?id=DM_XML
引用

In order to make XML compatible with SGML, the character sequence that ends a CDATA section (]]>) must not appear inside element content. Instead the closing greater-than character (>) must be escaped using the appropriate entity (&). For example, the following is illegal in XML:


你用什么lib生成xml的?这种事情是xml generate lib应该帮你自动处理掉的。
   
0 请登录后投票
最后更新时间:2005-08-17
我说的是CDATA类型的啊

其他类型是当然要处理掉的
   
0 请登录后投票
最后更新时间:2005-08-17
插入CDATA类型的text,xml generate lib也应该会自动帮你做转换的。
   
0 请登录后投票
最后更新时间:2005-08-17
[code:1]
&  lt  ;[CDATA[
]]& gt ;
[/code:1]
这样好了
   
0 请登录后投票
最后更新时间:2005-08-17
咳,我明白了
   
0 请登录后投票
最后更新时间:2005-08-17
我来写个bt点的:
[code:1]
<a href="test.gif" alt=]]> hello </a>
[/code:1]
   
0 请登录后投票
最后更新时间:2005-08-17
"<a href="test.gif" alt=]]> hello </a>".replace(">","& gt;");
   
0 请登录后投票
最后更新时间:2005-08-17
你最好找个阅读器自己试试,我试过了

例如"周博通RSS阅读器" 就无法解析
   
0 请登录后投票
最后更新时间:2005-08-17
Readonly 写道
插入CDATA类型的text,xml generate lib也应该会自动帮你做转换的。


你用啥xml lib?

我用jdom试了,它不转,而是报异常,不允许包含,呵呵

[code:1]
        Document doc = new Document();
       
        doc.setRootElement(new Element("root"));
       
        CDATA node = new CDATA("hello alt=]]&");
        node.setText("hello]]>");

[/code:1]

异常:
引用

org.jdom.IllegalDataException: The data "hello]]>" is not legal for a JDOM CDATA section: CDATA cannot internally contain a CDATA ending delimiter (]]>).
at org.jdom.CDATA.setText(CDATA.java:121)
at zerotest.XmlFileTest.main(XmlFileTest.java:25)
   
0 请登录后投票
论坛首页 Java版

跳转论坛:
JavaEye推荐