המרת XML ל-CSV

פועל על המכשיר שלכם · הקובץ לא עוזב את המכשיר.

גררו קובץ 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 השורות הראשונות לפני ההורדה. שום דבר לא מועלה.

איך המרת XML ל-CSV

  1. גררו קובץ XML, או הדביקו XML בתיבה.
  2. בחרו את מפריד הפלט והאם להוסיף BOM לאקסל.
  3. לחצו «המרה ל-CSV» ובדקו את התצוגה המקדימה.
  4. הורידו את ה-.csv.

פורמטים נתמכים ומגבלות

קלט
XML (.xml) – קובץ או טקסט מודבק, נקרא בקידוד שהוא מצהיר עליו
פלט
CSV, RFC 4180, UTF-8, BOM אופציונלי
שורות
רשימת האלמנטים החוזרים הארוכה ביותר
קינון
אלמנטים בנים ← עמודות עם נקודה; מאפיינים ← עמודות @
איפה זה רץ
בדפדפן – בלי העלאה

לא מיועד ל: מסמכים עם כמה רשימות של רשומות – רק הארוכה ביותר הופכת לשורות; כדי לקבל אחרת, המירו ל-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‎, בלי המיקום שלו ביניהם. הקובץ נקרא בקידוד שהשורה הראשונה שלו מצהירה עליו.

שאלות נפוצות

האם הקובץ שלי נשלח לשרת?
לא. ההמרה מתבצעת כולה בדפדפן, בכוח המכשיר שלכם, והקובץ לא יוצא מהמחשב או מהטלפון. אחרי שהשתמשתם בכלי פעם אחת, הוא ממשיך לעבוד גם בלי אינטרנט (כלי הווידאו, זיהוי הטקסט והסרת הרקע מורידים את המנוע שלהם מהאתר הזה בפעם הראשונה).
איך הכלי יודע אילו אלמנטים הם השורות?
הוא לוקח את רשימת האלמנטים החוזרים הארוכה ביותר מתחת לשורש – כך <records><record>…</record></records> נותן שורה לכל <record>, ופיד RSS שורה לכל <item>. ערכים שלצד הרשימה, כמו הכותרת של הפיד עצמו, מושארים בחוץ. אם אין אלמנט חוזר, הרשומה היחידה הופכת לשורה אחת, עם שמות השדות שלה כעמודות.
לאן הולכים המאפיינים?
לעמודות עם תחילית @, כך ש-<record id="3"> מייצר עמודה בשם @id. טקסט לצד אלמנטים בנים נכנס לעמודה #text.
אקסל יפתח את זה נכון?
כן. המתג „הוספת BOM עבור Excel“ (פועל כברירת מחדל) כותב את הסימון שאקסל צריך כדי לזהות UTF-8, ולכן עברית, ניקוד וסמלים מוצגים נכון.

כלים קשורים

עוד בגיליונות ונתונים

עמוד זה בשפות אחרות: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · فارسی · اردو · Bahasa Indonesia · বাংলা