gpt4 book ai didi

java - 放置内容 :encoded in RSS feed using ROME

转载 作者:行者123 更新时间:2023-11-30 09:39:15 25 4
gpt4 key购买 nike

我正在尝试将一些 HTML 内容放入 <content:encoded> 中使用 ROME 及其 modules 的标签.到目前为止,我已成功将 mediaRSS 和 geoRSS 放入提要中,但我的内容没有显示出来。

这是我的代码:

ContentModule contentModule = new ContentModuleImpl();
List<ContentItem> contents = new ArrayList<ContentItem>();
List<String> contentValueDOM = new ArrayList<String>();
ContentItem content = new ContentItem();

content.setContentValue("<p>Some text here</p>");
content.setContentEncoding("text/html");
content.setContentAbout("Paragraph");
content.setContentValueDOM(contentValueDOM);
contents.add(content);

contentModule.setContents(contents);
contentModule.setContentItems(contents);
entry.getModules().add(contentModule);

这是我的输出

<item>
<title>Example page</title>

<link>http://www.example.com/news/2012/march/example-page.html</link>
<description>Introduction</description>
<category>news</category>
<pubDate>Tue, 27 Mar 2012 08:18:52 GMT</pubDate>
<guid>http://www.example.com/news/2012/march/example-page.html</guid>
<dc:date>2012-03-27T08:18:52Z</dc:date>

<content:items>
<rdf:Bag>
<rdf:li>
<content:item rdf:about="Paragraph">
<content:encoding rdf:resource="text/html" />
<rdf:value />
</content:item>
</rdf:li>
</rdf:Bag>

</content:items>
<geo:lat>52.09161879618039</geo:lat>
<geo:long>5.1141280958007655</geo:long>
<media:content medium="image" fileSize="16029" height="500" type="image/jpeg" width="399" url="http://www.example.com/binaries/content/gallery/image.jpg">
<media:description type="plain/text" />
<media:thumbnail url="http://www.example.com/binaries/content/gallery/thumbnail/image.jpg" />
</media:content>
<media:content medium="video" expression="full" type="application/x-shockwave-flash" isDefault="true" url="http://www.youtube.com/v/jQq4ju-vupY?rel=0">

<media:player url="http://www.youtube.com/v/jQq4ju-vupY?rel=0&amp;feature=youtube_gdata_player" width="520" height="390" />
</media:content>
</item>

最佳答案

这似乎可行:

List<String> contents = new ArrayList<String>();
contents.add("<p>Some text here</p>");
ContentModule module = new ContentModuleImpl();
module.setEncodeds(contents);
entry.getModules().add(module);

然而,上面使用 Updated Syntax 输出提要而不是 Original Syntax .使用 Updated Syntax 你会得到类似的东西(它包含 标签):

<item>
<content:encoded><![CDATA[<p>Some text here</p>]]></content:encoded>
</item>

当我尝试像您一样使用支持原始语法(使用 modules-0.3.2)的 ContentItem 时,我发现 ContentModuleGenerator 需要 setContentValueDOM 包含要输出的内容的值。此内容似乎也需要可转换org.jdom.Content(例如,您需要调用setContentValueDOM(List ) )。由于 org.jdom.CDATAorg.jdom.Content 的子类,您可以这样做:

ContentModule contentModule = new ContentModuleImpl();                
List<ContentItem> contents = new ArrayList<ContentItem>();
List<Content> contentValueDOM = new ArrayList<Content>();
String value = "<p>Some text here</p>";
ContentItem content = new ContentItem();
content.setContentValue(value);
content.setContentAbout("Paragraph");
content.setContentFormat("http://www.w3.org/TR/html4/");
CDATA valueElement = new CDATA(value);
contentValueDOM.add(valueElement);
content.setContentValueDOM(contentValueDOM);
contents.add(content);
contentModule.setContents(contents);
contentModule.setContentItems(contents);
entry.getModules().add(contentModule);

产生:

<item>
<title>Example page</title>
<content:items>
<rdf:Bag>
<rdf:li>
<content:item rdf:about="Paragraph">
<content:format rdf:resource="http://www.w3.org/TR/html4/" />
<rdf:value><![CDATA[<p>Some text here</p>]]></rdf:value>
</content:item>
</rdf:li>
</rdf:Bag>
</content:items>
</item>

如果您更改上述代码示例,将 CDATA 部分替换为元素并添加适当的格式和编码信息,则:

//content.setContentFormat("http://www.w3.org/TR/html4/");
//CDATA valueElement = new CDATA(value);
content.setContentFormat("http://www.w3.org/1999/xhtml");
content.setContentEncoding("http://www.w3.org/TR/REC-xml#dt-wellformed");
Element valueElement = new Element("p");
valueElement.setText("Some text here");

您最终会得到显示 标记的 XML:

<item>
<title>Example page</title>
<content:items>
<rdf:Bag>
<rdf:li>
<content:item rdf:about="Paragraph">
<content:format rdf:resource="http://www.w3.org/1999/xhtml" />
<content:encoding rdf:resource="http://www.w3.org/TR/REC-xml#dt-wellformed" />
<rdf:value>
<p>Some text here</p>
</rdf:value>
</content:item>
</rdf:li>
</rdf:Bag>
</content:items>
</item>

关于java - 放置内容 :encoded in RSS feed using ROME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9887432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com