首页 \ 问答 \ RSS中的CDATA部分无法正常工作 - rometools(CDATA section in RSS not working - rometools)

RSS中的CDATA部分无法正常工作 - rometools(CDATA section in RSS not working - rometools)

我正在使用rometools作为rss feed。 我试图在RSS项目的内容部分中使用cdata内的html标签。 这是我的代码:

public class RssView extends AbstractRssFeedView {
@Override
 protected List<com.rometools.rome.feed.rss.Item> buildFeedItems(Map<String, Object> map,
                                                                HttpServletRequest httpServletRequest,
                                                                HttpServletResponse httpServletResponse) throws Exception {
    List<Item> items = new ArrayList<>();
    Object ob = map.get("feeds");
    if (ob instanceof List){
        for(int i = 0; i < ((List<?>)ob).size(); i++){
            Object articleObj = ((List<?>) ob).get(i);

            Article article = (Article)articleObj;
            Item item = new Item();
            item.setTitle(article.getTitle());

            Guid guid = new Guid();
            guid.setValue(item.getLink());
            item.setGuid(guid);

            item.setPubDate(article.getCreatedTime());

            Description description = new Description();
            description.setValue(article.getDescrition());
            item.setDescription(description);

            Content content = new Content();
            content.setValue(buildContent(article));
            item.setContent(content);
            items.add(item);
        }
    }
    return items;
}
@Override
protected void buildFeedMetadata(Map<String, Object> model, Channel channel,
                                 HttpServletRequest request) {
    channel.setTitle("Article");
    channel.setLink("http://www.");
    channel.setDescription("desciprtion");
    channel.setLanguage("en-us");
}

private String buildContent(Article article) {
    StringBuilder sb = new StringBuilder();

    sb.append("<![CDATA[" +
            "<!doctype html>\n]]>");

    return sb.toString();
}

问题是cdata中不应该被转义的html标签正在被转义。


I am using rometools for rss feeds. I am trying to use html tags inside cdata in content section of the RSS item. Here is my code:

public class RssView extends AbstractRssFeedView {
@Override
 protected List<com.rometools.rome.feed.rss.Item> buildFeedItems(Map<String, Object> map,
                                                                HttpServletRequest httpServletRequest,
                                                                HttpServletResponse httpServletResponse) throws Exception {
    List<Item> items = new ArrayList<>();
    Object ob = map.get("feeds");
    if (ob instanceof List){
        for(int i = 0; i < ((List<?>)ob).size(); i++){
            Object articleObj = ((List<?>) ob).get(i);

            Article article = (Article)articleObj;
            Item item = new Item();
            item.setTitle(article.getTitle());

            Guid guid = new Guid();
            guid.setValue(item.getLink());
            item.setGuid(guid);

            item.setPubDate(article.getCreatedTime());

            Description description = new Description();
            description.setValue(article.getDescrition());
            item.setDescription(description);

            Content content = new Content();
            content.setValue(buildContent(article));
            item.setContent(content);
            items.add(item);
        }
    }
    return items;
}
@Override
protected void buildFeedMetadata(Map<String, Object> model, Channel channel,
                                 HttpServletRequest request) {
    channel.setTitle("Article");
    channel.setLink("http://www.");
    channel.setDescription("desciprtion");
    channel.setLanguage("en-us");
}

private String buildContent(Article article) {
    StringBuilder sb = new StringBuilder();

    sb.append("<![CDATA[" +
            "<!doctype html>\n]]>");

    return sb.toString();
}

The problem is that html tags inside cdata that aren't supposed to be escaped are being escape.


原文:https://stackoverflow.com/questions/36005095
更新时间:2019-12-03 08:12

最满意答案

你想要做什么,罗马不可能做到这一点。 请参阅此问题: https//github.com/rometools/rome/issues/280


What you are trying to do, is not possible with Rome a the moment. See this issue: https://github.com/rometools/rome/issues/280

2016-03-18

相关文章

更多

最新问答

更多
  • jsPlumb draggable element javascript函数(jsPlumb draggable element javascript function)
  • MVC4:ViewModel(带有radiobuttonlist)在HttpPost之后为空(MVC4: ViewModel (with radiobuttonlist) is empty after HttpPost)
  • 如何在同一帐户上设置“Dev repo”(在prod和团队之间)(How to set up a “Dev repo” (between the prod and the team) on the same account)
  • 如何在tcl中将eth0配置为发送方udp端口(how to configure eth0 as a sender udp port in tcl)
  • 如何在datarow []中的列中找到最大值?(How to find max value in a column in a datarow[] ?)
  • 如何使用预定义文本替换来自数据库的部分结果(How do I replace part of result coming from Database with predefined text)
  • Selenium Java注入了新的Javascript函数(Selenium Java inject new Javascript function)
  • 使用.on的多个下拉菜单选择文本仅适用于第一个下拉列表(Multiple Dropdowns Menu Selection text using .on works only on first dropdown)
  • 快速将黄土曲线添加到大型数据集图中的方法(Quick way to add loess curve to large data set graph)
  • FilteringSelect in mvc(FilteringSelect in mvc)
  • 在Delphi XE2中开发Mac或iOS应用程序需要哪些硬件/软件?(What hardware/software is necessary to develop Mac or iOS apps in Delphi XE2?)
  • 在原型的构造函数中初始化属性时获取“未定义”(Getting 'undefined' when a property is initialized in the constructor of a prototype)
  • 通过越狱加载的应用程序的Documents文件夹位置(Location of Documents folder for an app loaded via jailbreak)
  • 在OpenGL中使用可编程和固定管道功能(Using both programmable and fixed pipeline functionality in OpenGL)
  • 将任何用户输入重定向到单独的底层程序(redirect any user input to a separate underlying program)
  • 编辑文本不能正常工作android(Edit texts not working properly android)
  • “user_denied”Facebook应用页面上的Facebook用户区域设置(Facebook user locale on “user_denied” facebook app page)
  • 在大图像中找到小的部分透明图像的坐标(find coordinates of small partially-transparent image within a large image)
  • 我如何在cakephp 3.1中获得完整的相对路径?(How i can get full relative path of image in cakephp 3.1?)
  • 如何保存拖动标记的新本地化?(How to save new localization of dragged marker?)
  • MySQL UPDATE vs INSERT和DELETE(MySQL UPDATE vs INSERT and DELETE)
  • 在执行查询之前,在SQLAlchemy模型中将datetime转换为unix时间戳?(Convert datetime to unix timestamp in SQLAlchemy model before executing query?)
  • OpenCL与OpenGL互操作的优势(Advantage of OpenCL interoperability with OpenGL)
  • 如何解析用点和等分隔的数据然后添加到listview(How to parsing data from delimited with dot and equal then add to listview)
  • 带调试输出的X3解析器段错误(BOOST_SPIRIT_X3_DEBUG)(X3 parser segfaults with debug output (BOOST_SPIRIT_X3_DEBUG))
  • 将文件夹名称添加到fgrep结果(Add folder name to fgrep result)
  • 在MySQL中加载一个表是非常慢的(Loading one table in MySQL is ridiculously slow)
  • 如何将JSON放入PHP变量?(How do I put JSON into a PHP Variable?)
  • 如何绕过Microsoft.Speech.Recognition中的不流畅?(How to bypass disfluencies in Microsoft.Speech.Recognition?)
  • 原点的最后一行是什么?(What is the last row of an origin for?)