2010-01-20 44 views

Trả lời

1

Đây có thể không phải là câu trả lời bạn tìm kiếm, nhưng mọi phương ngữ RSS là một tiêu chuẩn khá đơn giản (giữ 0,9 và 2 đặc biệt và có ràng buộc đối với 1). Bạn có thể xem xét viết nó bằng tay, nếu bạn không có bất kỳ ràng buộc bổ sung nào (như, bạn đã sử dụng Django, hoặc nó sẽ trở nên phức tạp hơn trong tương lai gần hơn, hoặc nó sẽ tự động được phân phối, hoặc bạn muốn để tạo RSS 1, RSS 2 và Atom cùng một lúc và không có thời gian để đọc 3 thông số kỹ thuật).

Thông số kỹ thuật:

12

tôi đề nghị bạn sử dụng một mẫu và thức ăn trong danh sách các mặt hàng cho mẫu.

Ví dụ Jinja2 mẫu (Atom, không RSS, nhưng bạn sẽ có được ý tưởng), giả định rằng các mục 3-tuples (tiêu đề, liên kết, html):

<?xml version="1.0" encoding="utf-8"?> 
<feed xmlns="http://www.w3.org/2005/Atom"> 
    <author>Author's name</author> 
    <title>Feed title</title> 
    {%for item in items %} 
    <entry> 
     <title>{{item[0]}}</title> 
     <link href="{{item[1]}}"/> 
     <content type="html">{{item[2]}}</content> 
    </entry> 
    {%endfor%} 
</feed> 

Mã để nuôi nội dung vào mẫu và xuất kết quả:

import jinja2 
env = jinja2.Environment(loader=jinja2.FileSystemLoader(".")) 
print env.get_template("feedtemplate.xml").render(items=get_list_of_items()) 
+0

Nếu mục [0] hoặc mục [2] chứa thực thể HTML không tồn tại trong XML (như ©), thì nguồn cấp dữ liệu của bạn sẽ không được định dạng đúng. Xem http://www.alexatnet.com/articles/reference-undefined-entity-error-xml-file –

+0

Nhưng thông thường bạn sẽ không có các thực thể HTML trong tiêu đề hoặc html. Bạn sẽ có chuỗi unicode bình thường. – codeape

Các vấn đề liên quan