Я пытался интегрировать мои существующие блоги в новый канал третьей стороны. Я пытался сгенерировать пользовательский документ xml, используя rails builder. Вот файл blogs.rss.builder
xml.instruct!
xml.rss :version => '2.0', 'xmlns:atom' => 'http://www.w3.org/2005/Atom' do
xml.channel do
xml.title 'Sample Title'
xml.description 'Sample Desc'
xml.link "https://www.example.com/blog/"
xml.language 'en'
xml.tag! 'atom:link', :rel => 'self', :type => 'application/rss+xml', :href => "https://www.example.com/blogs.rss"
xml.sy :updatePeriod, "hourly"
xml.sy :updateFrequency, 1
for blog in @blogs
xml.item do |doc|
doc.title blog['title']
doc.link "https://www.example.com/blog/#{blog['slug']}"
doc.media(:thumbnail, :url => "https:#{blog['cover']}")
doc.pubDate(blog['created_at'])
doc.modifiedDate(blog['updated_at'])
xml.tag!("content:encoded") { xml.cdata!(blog['body']) }
end
end
end
end
, который генерирует следующие
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Sample Title</title>
<description>Sample Desc</description>
<link>https://www.example.com/blog/</link>
<language>en</language>
<atom:link rel="self" type="application/rss+xml" href="https://www.example.com/blogs.rss"/>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<item>
<title>Sample Influence</title>
<link>https://www.example.com/blog/sample-influence</link>
<media:thumbnail url="https://assets.example.com/uploads/sample.png"/>
<pubDate>2020-04-14T15:52:07.492Z</pubDate>
<modifiedDate>2020-04-16T06:03:49.842Z</modifiedDate>
<content:encoded>
<![CDATA[Hello]]>
</content:encoded>
</item>
</channel>
</rss>
Они sh
<content:encoded>
<![CDATA[Hello]]>
</content:encoded>
be
<content:encoded><![CDATA[Hello]]></content:encoded>
Помощь. Спасибо.