Bash:
עבודה עם XML

איך לעשות:

הנה איך לנתח XML ב-Bash. כלים? xmllint ו-xmlstarlet. לולאה דרך אלמנטים של XML? בהחלט. דוגמא עם פלט דוגמא:

# בהנחה ש-xmlstarlet מותקן
# התקנה עם: apt-get install xmlstarlet

# ניתוח תוכן XML
cat <<EOF > sample.xml
<fruits>
  <fruit name="Apple"/>
  <fruit name="Banana"/>
</fruits>
EOF

# חילוץ שמות עם xmlstarlet
xmlstarlet sel -t -m "//fruit" -v "@name" -n sample.xml

# הפלט אמור להיות:
# Apple
# Banana

צלילה עמוקה

בשנות ה-90, XML צץ כאלטרנטיבה פשוטה יותר ל-SGML, אך עם מבנה מסודר יותר מ-HTML. כעת, יש לו חברה – JSON, YAML, למשל. אבל XML עדיין בעיניין, במיוחד בהגדרות ושירותי אינטרנט מבוססי SOAP.

בכליים, xmllint נוח לאימות XML, שאילתות xpath. xmlstarlet הוא הסכין השוויצרי לטריקים של XML – שאילתה, עריכה, אימות, המרה. בסקריפטים של bash, הם גיבורי על למשימות XML.

מאחורי הקלעים, xmllint משתמש ב-libxml2 – המפענח C של XML. הוא מהיר, אבל הודעות השגיאה? אניגמטיות. ו-xmlstarlet? תבניות רקורסיביות ותמיכה ב-EXSLT. דורש מאמץ חשיבה, אבל עוצמתי.

ראה גם