פועל על המכשיר שלכם · הקובץ לא עוזב את המכשיר.
גררו קובץ XML של רשומות חוזרות – <records><record>…</record>…</records>, פיד RSS, ייצוא ממסד נתונים – וקבלו CSV עם שורה לכל רשומה. המסמך נקרא במפענח ה-XML של הדפדפן, ואז רשימת האלמנטים החוזרים הארוכה ביותר נמצאת אוטומטית, לא משנה מה עוטף אותה – מאפיין על העוטף, או הכותרת והקישור של פיד שיושבים לצד הפריטים שלו – ושורת התוצאה מציינת באיזו רשימה נעשה שימוש.
כל רשומה משוטחת כמו בכלי המרת JSON ל-CSV: אלמנטים מקוננים הופכים לעמודות מופרדות בנקודה (address.city), מאפיינים לעמודות עם תחילית @ (@id), אלמנטים פנימיים חוזרים שיש להם בנים משלהם מקבלים עמודות ממוספרות (line.0.sku), אלמנטים חוזרים עם טקסט בלבד מחוברים בנקודה-פסיק (a;b), ושורת הכותרת היא איחוד כל העמודות שנמצאו. הערכים נכתבים בדיוק כמו ב-XML. שדות עם פסיקים, מירכאות או מעברי שורה מצוטטים לפי RFC 4180.
ה-CSV הוא UTF-8 עם BOM אופציונלי לאקסל, המפריד בבחירתכם, ואפשר לראות את 200 השורות הראשונות לפני ההורדה. שום דבר לא מועלה.
לא מיועד ל: מסמכים עם כמה רשימות של רשומות – רק הארוכה ביותר הופכת לשורות; כדי לקבל אחרת, המירו ל-JSON, העתיקו את הרשימה הזו והמירו אותה בכלי המרת JSON ל-CSV.
השורות הן רשימת האלמנטים החוזרים הארוכה ביותר בכל מקום מתחת לשורש, לא משנה מה עוטף אותה. <records count="2"><record>…</record><record>…</record></records> נותן שורה לכל <record>, אף שלעוטף יש מאפיין. פיד RSS נותן שורה לכל <item>, עם עמודות כמו title, link ו-pubDate, אף שה-title וה-link של הערוץ עצמו יושבים לצד הפריטים. השורה שמתחת לתוצאה מציינת באיזו רשימה נעשה שימוש, למשל rss.channel.item.
ערכים שלצד הרשימה, כמו הכותרת של הפיד עצמו, אינם חלק מאף רשומה ומושארים בחוץ. כשמסמך מכיל כמה רשימות של רשומות, רק הארוכה ביותר הופכת לשורות. כדי לקבל רשימה אחרת, המירו את הקובץ עם /xml-to-json, העתיקו את הרשימה הזו מה-[ שלה ועד ה-], הדביקו אותה ב-/json-to-csv והמירו.
כשאין אלמנט חוזר, הרשומה היחידה היא השורה היחידה, והעמודות שלה הן שמות השדות שלה עצמה: <records><record><name>נועה</name><city>חיפה</city></record></records> נותן את העמודות name ו-city. כך קובץ שלפעמים מכיל רשומה אחת ולפעמים רבות שומר על אותה שורת כותרת, וזה חשוב כשתוכנה אחרת קוראת את העמודות לפי שם.
הערכים נכתבים בדיוק כמו ב-XML: 1.50 נשאר 1.50, TRUE נשאר TRUE, ואלמנט שמכיל NULL נותן את הטקסט NULL, בעוד אלמנט ריק נותן תא ריק. 007 שומר על האפסים שלו, ותאריכים נשארים כפי שנכתבו. ערך שמתחיל ב-=, +, - או @ מקבל גרש לפניו, כמו ב-/json-to-csv, כדי שגיליון אלקטרוני לא יריץ אותו כנוסחה.
אלמנטים בנים חוזרים שמכילים רק טקסט מחוברים בנקודה-פסיק בתא אחד, כך ששני אלמנטים <tag> נותנים a;b. אלמנטים בנים חוזרים שיש להם בנים משלהם מקבלים עמודות ממוספרות, כמו line.0.sku ו-line.1.sku. קידומות מרחבי שמות נשארות בשמות העמודות, כמו ב-soap:Body.price. טקסט שיושב לצד אלמנטים בנים נכנס לעמודה #text, בלי המיקום שלו ביניהם. הקובץ נקרא בקידוד שהשורה הראשונה שלו מצהירה עליו.
עמוד זה בשפות אחרות: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · فارسی · اردو · Bahasa Indonesia · বাংলা