<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>API OCR mã nguồn mở on File Format Blog</title>
    <link>https://blog.fileformat.com/vi/tag/api-ocr-m%C3%A3-ngu%E1%BB%93n-m%E1%BB%9F/</link>
    <description>Recent content in API OCR mã nguồn mở on File Format Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>vi</language>
    <lastBuildDate>Fri, 23 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/vi/tag/api-ocr-m%C3%A3-ngu%E1%BB%93n-m%E1%BB%9F/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>So sánh các API OCR mã nguồn mở: Công cụ nào cung cấp chất lượng đầu ra tốt nhất?</title>
      <link>https://blog.fileformat.com/vi/ocr/comparing-open-source-ocr-apis-based-on-output-quality/</link>
      <pubDate>Fri, 23 Oct 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/vi/ocr/comparing-open-source-ocr-apis-based-on-output-quality/</guid>
      <description>Chúng tôi so sánh các công cụ OCR mã nguồn mở hàng đầu—Tesseract, PaddleOCR, EasyOCR và Surya—đánh giá các định dạng đầu ra của chúng bao gồm văn bản thuần, hOCR, ALTO XML, JSON và Markdown.</description>
      <content:encoded><![CDATA[<p><strong>Cập nhật lần cuối</strong>: 20 Tháng 8, 2026</p>
<figure class="align-center ">
    <img loading="lazy" src="images/comparing-open-source-ocr-apis-based-on-output-quality.png#center"
         alt="Compare Open-Source OCR APIs: Which Tool Offers the Best Output Quality?"/> 
</figure>

<h2 id="so-sánh-các-api-ocr-mã-nguồn-mở-dựa-trên-chất-lượng-định-dạng-đầu-ra">So sánh các API OCR mã nguồn mở dựa trên chất lượng định dạng đầu ra</h2>
<p>Khi các kỹ sư đánh giá các công cụ Nhận dạng ký tự quang học (OCR), tỷ lệ lỗi ký tự (CER) và tỷ lệ lỗi từ (WER) thường chiếm ưu thế trong các tiêu chuẩn. Mặc dù độ chính xác nhận dạng là cần thiết, nó chỉ giải quyết một nửa vấn đề trong môi trường sản xuất.</p>
<p>Nếu bạn đang phân tích các tệp PDF đa cột phức tạp, trích xuất các mục dòng từ biên lai, hoặc đưa các tài liệu trắng vào quy trình nhúng LLM, việc xuất bản văn bản thô tạo ra gánh nặng kỹ thuật lớn. Một chuỗi ký tự không có nhận thức về bố cục, thứ tự đọc logic, hoặc dữ liệu tọa độ buộc đội ngũ của bạn phải viết các trình phân tích dựa trên heuristics dễ gãy.</p>
<p>Yếu tố phân biệt thực sự cho các quy trình tài liệu hiện đại là <strong>chất lượng định dạng đầu ra</strong>: mức độ nhất quán và sạch sẽ mà một công cụ cung cấp tọa độ, thứ tự đọc, cấu trúc phân cấp và dữ liệu bảng.</p>
<p>Dưới đây là so sánh tập trung vào kỹ thuật của bốn công cụ <a href="https://products.fileformat.com/ocr/">open-source OCR</a> hàng đầu — <strong>Tesseract</strong>, <strong>PaddleOCR</strong>, <strong>EasyOCR</strong>, và <strong>Surya OCR</strong> — đánh giá cách đầu ra của chúng hoạt động trong các quy trình tự động.</p>
<h2 id="các-định-dạng-đầu-ra-phổ-biến-những-gì-kỹ-sư-thực-sự-cần">Các định dạng đầu ra phổ biến: Những gì kỹ sư thực sự cần</h2>
<p>Mỗi API OCR đóng gói văn bản được phát hiện theo cách khác nhau. Hiểu các định dạng này giúp xác định mức độ xử lý hậu kỳ mà quy trình của bạn cần:</p>
<ul>
<li><strong>Văn bản thuần (<code>.txt</code>):</strong> Đại diện đơn giản nhất. Nó loại bỏ tất cả siêu dữ liệu vị trí và gộp các bố cục đa cột thành đọc ngang, điều này có thể làm rối các đoạn văn.</li>
<li><strong>Tiêu chuẩn lưu trữ (<code>hOCR</code>, <code>ALTO XML</code>):</strong> Các định dạng dựa trên XML/HTML tiêu chuẩn trong việc lưu trữ thư viện. Chúng nhúng tọa độ, ước tính phông chữ và mức độ tin cậy vào các nút DOM. Rất mạnh mẽ cho việc tái tạo tài liệu, nhưng nặng nề đối với các microservice.</li>
<li><strong>JSON có cấu trúc:</strong> Lựa chọn mặc định cho các backend web hiện đại. Cung cấp các mảng tọa độ (hộp bao hoặc đa giác), mức độ tin cậy và cấu trúc khối/dòng/từ theo cấp bậc.</li>
<li><strong>Markdown (<code>.md</code>) / Bảng HTML:</strong> Tiêu chuẩn hiện đại cho Retrieval-Augmented Generation (RAG). Bảo tồn các phần ngữ nghĩa (tiêu đề, danh sách, văn bản in đậm) và ma trận bảng mà không cần tái tạo không gian ở downstream.</li>
</ul>
<h2 id="1-tesseract-ocr17">1. <a href="https://products.fileformat.com/ocr/net/tesseract/">Tesseract OCR</a></h2>
<p>Được Google duy trì, Tesseract vẫn là công cụ nền tảng của OCR mã nguồn mở. Kiến trúc của nó dựa mạnh vào các thuật toán phân đoạn trang truyền thống, được bổ sung bởi một động cơ ký tự dựa trên LSTM.</p>
<h3 id="định-dạng-đầu-ra-gốc">Định dạng đầu ra gốc</h3>
<ul>
<li><strong>Kết quả chính:</strong> Văn bản thuần, hOCR (HTML), ALTO XML, TSV (Giá trị tách bằng tab), và PDF/A có thể tìm kiếm.</li>
<li><strong>Nhận thức bố cục:</strong> Các heuristics dựa trên quy tắc thông qua Chế độ Phân đoạn Trang (PSM).</li>
</ul>
<h3 id="phân-tích-định-dạng-đầu-ra">Phân tích định dạng đầu ra</h3>
<ul>
<li><strong>Nơi nó xuất sắc:</strong> Các xuất khẩu <code>TSV</code> và <code>hOCR</code> của Tesseract được tiêu chuẩn hoá và dự đoán được. Một xuất khẩu TSV duy nhất trả về các cột có cấu trúc cho <code>level</code>, <code>page_num</code>, <code>block_num</code>, <code>par_num</code>, <code>line_num</code>, <code>word_num</code>, <code>left</code>, <code>top</code>, <code>width</code>, <code>height</code>, và <code>conf</code>. Nếu bạn đang chuyển đổi các kho lưu trữ giấy thành PDF/A có thể tìm kiếm hoặc cần tuân thủ nghiêm ngặt các tiêu chuẩn của tổ chức, Tesseract xử lý việc này một cách nguyên bản mà không cần mã kết nối tùy chỉnh.</li>
<li><strong>Nơi nó thiếu sót:</strong> Tesseract không có API JSON gốc. Tiêu thụ đầu ra của nó trong Python hoặc Node.js yêu cầu phân tích các tệp XML/TSV hoặc sử dụng các wrapper như <code>pytesseract</code>. Công cụ bố cục của nó cũng gặp khó khăn với luồng cột không chuẩn, thường trộn lẫn văn bản từ các cột liền kề trừ khi cung cấp các cắt giới hạn thủ công.</li>
</ul>
<pre tabindex="0"><code>Tesseract Output Profile:
├── Plain Text: Clean for standard single-column pages
├── XML / hOCR: First-class, rock-solid support
├── JSON: Requires custom wrappers or TSV-to-JSON transforms
└── Markdown / Tables: Poor (requires custom reconstruction)
</code></pre><h2 id="2-paddleocr18">2. <a href="https://products.fileformat.com/ocr/python/paddleocr/">PaddleOCR</a></h2>
<p>Được hỗ trợ bởi khung PaddlePaddle của Baidu, PaddleOCR đã được áp dụng rộng rãi nhờ các mô hình nhẹ, phạm vi đa ngôn ngữ rộng rãi và bộ công cụ phân tích tài liệu chuyên dụng (<strong>PP-Structure</strong>).</p>
<h3 id="định-dạng-đầu-ra-gốc-1">Định dạng đầu ra gốc</h3>
<ul>
<li><strong>Kết quả chính:</strong> Python lists/dictionaries, raw JSON, visualization overlays, và HTML có cấu trúc qua PP-Structure.</li>
<li><strong>Nhận thức bố cục:</strong> Cao (sử dụng các mô hình học sâu để phân tích bố cục, phân loại hướng, và khôi phục bảng).</li>
</ul>
<h3 id="phân-tích-định-dạng-đầu-ra-1">Phân tích định dạng đầu ra</h3>
<ul>
<li><strong>Ưu điểm:</strong> Standard PaddleOCR trả về tọa độ đa giác 4 điểm (<code>[[x1, y1], [x2, y2], [x3, y3], [x4, y4]]</code>) cùng với chuỗi văn bản và điểm tin cậy. Điều này xử lý văn bản nghiêng hoặc cong một cách linh hoạt. Tuy nhiên, sức mạnh thực sự của nó nằm ở bộ <strong>PP-Structure</strong>, bộ công cụ phát hiện các vùng bố cục (tiêu đề, văn bản, bảng, hình ảnh) và phân tích bảng trực tiếp thành các chuỗi HTML hợp lệ (<code>&lt;table&gt;...&lt;/table&gt;</code>). Điều này loại bỏ nhu cầu tính toán thủ công các phạm vi ô từ hộp bao.</li>
<li><strong>Nhược điểm:</strong> API cơ bản trả về các mảng lồng nhau thiếu các khóa thuộc tính tiêu chuẩn giữa các phiên bản khác nhau. Đối với các ứng dụng có cấu trúc, các nhà phát triển thường viết một bộ chuyển đổi trung gian để chuẩn hoá tên trường (<code>bbox</code>, <code>text</code>, <code>confidence</code>).</li>
</ul>
<pre tabindex="0"><code>PaddleOCR Output Profile:
├── Plain Text: Clean across multiple orientations
├── XML / hOCR: Limited (JSON is the preferred interchange format)
├── JSON: Highly detailed with 4-point polygons
└── Markdown / Tables: Excellent (direct HTML table generation via PP-Structure)
</code></pre><h2 id="3-easyocr19">3. <a href="https://products.fileformat.com/ocr/python/easyocr/">EasyOCR</a></h2>
<p>Được xây dựng trên PyTorch bởi JaimedAI, EasyOCR được thiết kế để nhà phát triển nhanh chóng tiếp nhận. Nó gói gọn CRAFT (Character Region Awareness for Text Detection) cùng các mạng nhận dạng học sâu vào một API tối thiểu.</p>
<h3 id="định-dạng-đầu-ra-gốc-2">Định dạng đầu ra gốc</h3>
<ul>
<li><strong>Kết quả chính:</strong> Danh sách Python chứa các tuple của tọa độ, chuỗi đã nhận dạng và giá trị độ tin cậy.</li>
<li><strong>Nhận thức bố cục:</strong> Thấp đến trung bình (chỉ phát hiện dòng văn bản; không phân tích cấu trúc cấp tài liệu).</li>
</ul>
<h3 id="phân-tích-định-dạng-đầu-ra-2">Phân tích định dạng đầu ra</h3>
<ul>
<li><strong>Nơi nó xuất sắc:</strong> Độ đơn giản của đối tượng trả về không có đối thủ:
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>[
</span></span><span style="display:flex;"><span>    (
</span></span><span style="display:flex;"><span>        [[x1, y1], [x2, y2], [x3, y3], [x4, y4]],
</span></span><span style="display:flex;"><span>        <span style="color:#e6db74">&#34;Total Balance Due&#34;</span>,
</span></span><span style="display:flex;"><span>        <span style="color:#ae81ff">0.9842</span>,
</span></span><span style="display:flex;"><span>    )
</span></span><span style="display:flex;"><span>]
</span></span></code></pre></div></li>
</ul>
<p>Việc ánh xạ đầu ra này sang phản hồi REST tiêu chuẩn hoặc tuần tự hoá trực tiếp thành GeoJSON/định dạng tùy chỉnh chỉ mất vài dòng mã. Nó hoạt động ổn định trên văn bản trong cảnh tự nhiên, biển số xe và các phần tài liệu đã cắt riêng.</p>
<ul>
<li><strong>Nơi nó thiếu sót:</strong> EasyOCR không thực hiện phân tích bố cục tài liệu toàn diện. Nó không nhận dạng bảng, cấp độ tiêu đề, hoặc thứ tự đọc qua các cột phức tạp. Sử dụng EasyOCR trên một bài báo học thuật hai cột thường tạo ra các đoạn văn bản đan xen trừ khi kết hợp với mô hình phát hiện bố cục đầu vào (như YOLO hoặc LayoutLM).</li>
</ul>
<pre tabindex="0"><code>EasyOCR Output Profile:
├── Plain Text: Good for isolated text blocks
├── XML / hOCR: Not supported natively
├── JSON: Trivial to generate from Python tuples
└── Markdown / Tables: None (requires external layout pipelines)
</code></pre><h2 id="4-surya-ocr">4. Surya OCR</h2>
<p><a href="https://github.com/datalab-to/surya">Surya</a> là một khung OCR học sâu hiện đại được thiết kế đặc biệt cho việc hiểu tài liệu phức tạp và các quy trình nhập liệu LLM.</p>
<h3 id="định-dạng-đầu-ra-gốc-3">Định dạng đầu ra gốc</h3>
<ul>
<li><strong>Kết quả chính:</strong> Các cấu trúc JSON mô hình bằng Pydantic, chỉ mục thứ tự đọc logic, vùng giới hạn bố cục và đa giác phát hiện dòng.</li>
<li><strong>Nhận Thức Bố Cục:</strong> Rất cao (phân tích bố cục dựa trên học sâu và sắp xếp thứ tự đọc).</li>
</ul>
<h3 id="phân-tích-định-dạng-đầu-ra-3">Phân tích định dạng đầu ra</h3>
<ul>
<li><strong>Nơi Nó Tỏa Sáng:</strong> Surya trực tiếp giải quyết các thách thức của kỹ thuật AI hiện đại. Thay vì giả định tài liệu được đọc từ trên xuống dưới, từ trái sang phải, Surya triển khai một mô hình chuyên dụng để dự đoán <strong>thứ tự đọc</strong>. Nó nhóm các dòng thành các khối ngữ nghĩa logic, xử lý tự nhiên các cột đa dạng, và xuất ra các cấu trúc có kiểu thông qua Pydantic. Điều này làm cho việc nhập dữ liệu xuống các cơ sở dữ liệu vector và bộ chuyển đổi Markdown trở nên trực tiếp và đáng tin cậy.</li>
<li><strong>Nơi Nó Thiếu Hụt:</strong> Là một khung làm việc mới hơn, nặng hơn dựa trên PyTorch, Surya yêu cầu tính toán GPU chuyên dụng để đạt tốc độ xử lý tương đương với các engine C++ được tối ưu như Tesseract hoặc các mô hình Paddle đã được lượng tử hoá. Nó không nhắm tới các tiêu chuẩn lưu trữ di sản như hOCR hoặc ALTO.</li>
</ul>
<pre tabindex="0"><code>Surya Output Profile:
├── Plain Text: Naturally ordered according to human reading flow
├── XML / hOCR: Not supported
├── JSON: Fully typed, modern Pydantic schemas
└── Markdown / Tables: Clean semantic blocks ideal for Markdown synthesis
</code></pre><h2 id="ma-trận-so-sánh-đối-đầu">Ma trận so sánh đối đầu</h2>
<table>
<thead>
<tr>
<th style="text-align:left">Khả năng / Định dạng</th>
<th style="text-align:left">Tesseract OCR</th>
<th style="text-align:left">PaddleOCR (PP-Structure)</th>
<th style="text-align:left">EasyOCR</th>
<th style="text-align:left">Surya OCR</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><strong>hOCR / ALTO XML gốc</strong></td>
<td style="text-align:left"><strong>Hỗ trợ gốc</strong></td>
<td style="text-align:left">Chỉ bên thứ ba</td>
<td style="text-align:left">Không có</td>
<td style="text-align:left">Không có</td>
</tr>
<tr>
<td style="text-align:left"><strong>Hình học hộp bao</strong></td>
<td style="text-align:left">Căn trục (<code>x, y, w, h</code>)</td>
<td style="text-align:left">Đa giác 4 điểm</td>
<td style="text-align:left">Đa giác 4 điểm</td>
<td style="text-align:left">Đa giác + Các khối bố cục</td>
</tr>
<tr>
<td style="text-align:left"><strong>Phân tích Bảng</strong></td>
<td style="text-align:left">Chỉ TSV tọa độ</td>
<td style="text-align:left"><strong>Chuỗi bảng HTML</strong></td>
<td style="text-align:left">Không có</td>
<td style="text-align:left">Lưới tọa độ ô</td>
</tr>
<tr>
<td style="text-align:left"><strong>Phát hiện thứ tự đọc</strong></td>
<td style="text-align:left">Dựa trên quy tắc (ngắt khi đa cột)</td>
<td style="text-align:left">Phân tích bố cục ML</td>
<td style="text-align:left">Nhóm dòng cơ bản</td>
<td style="text-align:left"><strong>Mô hình thứ tự đọc chuyên dụng</strong></td>
</tr>
<tr>
<td style="text-align:left"><strong>Lược đồ JSON trực tiếp</strong></td>
<td style="text-align:left">Yêu cầu chuyển đổi</td>
<td style="text-align:left">Python Dict / JSON</td>
<td style="text-align:left">Python List / JSON</td>
<td style="text-align:left"><strong>Mô hình Pydantic có kiểu</strong></td>
</tr>
<tr>
<td style="text-align:left"><strong>Mục tiêu hạ nguồn lý tưởng</strong></td>
<td style="text-align:left">PDF lưu trữ, DMS kế thừa</td>
<td style="text-align:left">Dữ liệu biểu mẫu/biên nhận, ERP</td>
<td style="text-align:left">Kịch bản nhanh, Văn bản trong cảnh</td>
<td style="text-align:left">Tiếp nhận LLM, Kiến trúc RAG</td>
</tr>
</tbody>
</table>
<h2 id="khuyến-nghị-quy-trình-bạn-nên-chọn-cái-nào">Khuyến nghị quy trình: Bạn nên chọn cái nào?</h2>
<ul>
<li><strong>Chọn Tesseract</strong> nếu yêu cầu tuân thủ của bạn đòi hỏi các đầu ra chuẩn hoá <code>hOCR</code>, <code>ALTO XML</code>, hoặc PDF/A có thể tìm kiếm cho hồ sơ chính phủ hoặc lưu trữ.</li>
<li><strong>Chọn PaddleOCR</strong> nếu bạn đang xử lý các tài liệu tài chính hoạt động (hóa đơn, biên nhận, mẫu thuế) chứa các bảng phức tạp, không có viền và phải được chuyển đổi sang HTML hoặc bảng tính.</li>
<li><strong>Chọn EasyOCR</strong> nếu bạn cần một thư viện nhẹ, mang phong cách Python để phát hiện và trích xuất văn bản từ hình ảnh tự nhiên, biển hiệu đường phố, hoặc các phần giao diện người dùng đã cắt mà không gặp rắc rối cấu hình.</li>
<li><strong>Chọn Surya OCR</strong> nếu bạn đang đưa các báo cáo kinh doanh không có cấu trúc, bài báo nghiên cứu và hướng dẫn kỹ thuật vào một LLM hoặc công cụ tìm kiếm vector, nơi thứ tự đọc logic và ranh giới cấu trúc sạch sẽ là tối quan trọng.</li>
</ul>
<h1 id="câu-hỏi-thường-gặp-faq">Câu hỏi thường gặp (FAQ)</h1>
<h3 id="1-định-dạng-đầu-ra-ocr-mã-nguồn-mở-nào-dễ-dàng-nhất-để-đưa-vào-các-mô-hình-ngôn-ngữ-lớn">1. Định dạng đầu ra OCR mã nguồn mở nào dễ dàng nhất để đưa vào các mô hình ngôn ngữ lớn?</h3>
<p>JSON nhận thức thứ tự đọc của Surya OCR và các bảng HTML của PaddleOCR PP-Structure cung cấp các biểu diễn sạch nhất cho ngữ cảnh lời nhắc LLM và việc lập chỉ mục RAG.</p>
<h3 id="2-tesseract-có-thể-tạo-phản-hồi-json-một-cách-tự-nhiên-mà-không-cần-công-cụ-bên-thứ-ba-không">2. Tesseract có thể tạo phản hồi JSON một cách tự nhiên mà không cần công cụ bên thứ ba không?</h3>
<p>Không, Tesseract xuất ra văn bản, TSV, PDF và hOCR/ALTO XML một cách tự nhiên; việc tạo JSON yêu cầu chuyển đổi đầu ra TSV hoặc hOCR của nó bằng một trình phân tích trung gian.</p>
<h3 id="3-tọa-độ-đa-giác-4-điểm-khác-gì-so-với-hộp-bao-trục-theo-trục">3. Tọa độ đa giác 4 điểm khác gì so với hộp bao trục theo trục?</h3>
<p>Các hộp căn trục sử dụng <code>[x, y, width, height]</code> giả định văn bản phẳng, trong khi các đa giác 4 điểm cung cấp bốn cặp tọa độ để bao quanh chính xác các dòng văn bản xoay, nghiêng hoặc cong.</p>
<h3 id="4-công-cụ-nào-xuất-cấu-trúc-bảng-trực-tiếp-thành-mã-thay-vì-các-tọa-độ-lỏng-lẻo">4. Công cụ nào xuất cấu trúc bảng trực tiếp thành mã thay vì các tọa độ lỏng lẻo?</h3>
<p>Mô-đun PP-Structure của PaddleOCR tái tạo lại các ranh giới bảng được phát hiện thành các thẻ bảng HTML đầy đủ (<code>&lt;table&gt;</code>, <code>&lt;tr&gt;</code>, <code>&lt;td&gt;</code>), tránh việc tính toán không gian tùy chỉnh.</p>
<h3 id="5-tại-sao-đầu-ra-chuẩn-của-easyocr-gặp-khó-khăn-với-các-bài-báo-khoa-học-đa-cột">5. Tại sao đầu ra chuẩn của EasyOCR gặp khó khăn với các bài báo khoa học đa cột?</h3>
<p>EasyOCR xác định các dòng văn bản dựa trên khoảng cách cục bộ thay vì cấu trúc bố cục toàn cục, dẫn đến việc văn bản từ các cột liền kề bị đan xen trừ khi được giới hạn bởi một công cụ bố cục bên ngoài.</p>
<h2 id="xem-thêm">Xem Thêm</h2>
<ul>
<li><a href="https://blog.fileformat.com/en/ocr/ocr-output-formats-compared-txt-pdf-pdfa-xml-and-json/">Định dạng đầu ra OCR được so sánh: TXT, PDF, PDF/A, XML, JSON</a></li>
<li><a href="https://blog.fileformat.com/ocr/understanding-ocr-file-formats-hocr-vs-alto-vs-pdfa-explained/">Hiểu về các Định dạng Tệp OCR - Giải thích HOCR vs ALTO vs PDF/A</a></li>
<li><a href="https://blog.fileformat.com/pdf/what-is-the-difference-between-pdf-and-fdf/">Sự khác nhau giữa PDF và FDF là gì?</a></li>
<li><a href="https://blog.fileformat.com/file-formats/pdf-vs-word-which-one-should-you-use-and-when/">PDF vs Word: Nên dùng cái nào và khi nào?</a></li>
<li><a href="https://docs.fileformat.com/pdf/a/">Cách chọn định dạng tệp phù hợp cho Nhận dạng Văn bản viết tay (HTR)</a></li>
</ul>
<!-- raw HTML omitted -->
]]></content:encoded>
    </item>
    
  </channel>
</rss>
