0

我很难从 Atom 提要中提取 html 内容。在控制器中,我可以通过以下方式获取原子提要:

val feed = ws.WS.url("http://foo.blogspot.com/feeds/posts/default?max-results=4").get()
val blog = feed.await(5000).get.xml
Ok(views.html.news(blog))

在引用的新闻视图中,我有这个块:

<div id="news">
     <ul class="thumbnails">
     @for( entry <- blog \ "entry") {
         @{var message = (entry \ "content").head match {case <content>{a}</content> => a.text }}
         <li class="span6 review"><div class="thumbnail">
             <article>
                <header><h2>@{(entry \ "title").text}</h2>
                    Published @{(entry \ "published").text}</header>
                 @Html({(entry \ "content" ).head match{case <content>{a}</content> => a.text} } )
                   </article></div></li>
     }
     </ul>
 </div>

读取“标题”和“已发布”的 XML 内容工作正常。但是我无法干净地显示<content type="html">...</content>其中包含包含博客帖子内容的转义字符串的 html。我出现了一些意想不到的字符(应该是空格的 Â),所以 .

有没有人找到更好的方法来使用 Play Framework 2.x 从 atom 提要中提取 HTML 内容?

4

1 回答 1

0

如何做到这一点的解释来自https://play.lighthouseapp.com/projects/82401/tickets/474-no-default-utf-上的 Play 2.0 Ticket "No default UTF-8 charset for JSON WS response body" 8-charset-for-json-ws-response-body

HTTP 1.1 中文本的默认字符集是 ISO-8859-1,但 atom 提要指定 UTF-8。显然,<content> 标签中的 HMTL 是用 ISO-8859-1 编码的。因此,目标是读取 XML Elem,将内容转换为字符串,然后从 ISO-8859-1 转换为 UTF-8,因为这是我的文档使用的。这是我的代码:

@Html({
    (entry \ "content" ).head
        match{case <content>{a}</content> => 
            new String(a.text.getBytes("ISO-8859-1") , "UTF-8")
        }
 })

如果有人看到其中的缺陷,请随时向我展示我的方式的错误。

于 2012-11-10T03:42:34.930 回答