Dart:
עבודה עם XML

איך ל:

Dart אינו כולל תמיכה מובנית לטיפול ב-XML בספרייתו הסטנדרטית, מה שמחייב שימוש בחבילות צד שלישי. חבילה פופולרית היא xml. לשימוש בה, תחילה עליך להוסיף אותה ל-pubspec.yaml שלך:

dependencies:
  xml: ^5.0.0 // השתמשו בגרסה האחרונה הזמינה

לאחר מכן, יבאו את החבילה בקובץ Dart שלכם:

import 'package:xml/xml.dart' as xml;

פירוש XML:

נניח שיש לכם מחרוזת XML כזו:

<String name="greeting">שלום, עולם!</String>

ניתן לפרש ולקרוא את ה-XML כמו זה:

void parseXml(String xmlString) {
    final document = xml.XmlDocument.parse(xmlString);
    final String content = document.findElements('String').single.getAttribute('name');
    print(content); // מוצג: greeting
}

void main() {
  final xmlString = '<String name="greeting">שלום, עולם!</String>';
  parseXml(xmlString);
}

יצירת מסמכי XML:

יצירת מסמך XML חדש היא פשוטה עם החבילה xml:

void createXml() {
  final builder = xml.XmlBuilder();
  builder.processing('xml', 'version="1.0"');
  builder.element('greeting', nest: () {
    builder.attribute('name', 'hello');
    builder.text('שלום, עולם!');
  });
  final xmlDocument = builder.buildDocument();
  print(xmlDocument.toXmlString(pretty: true));
}

void main() {
  createXml();
}

פלט:

<?xml version="1.0"?>
<greeting name="hello">שלום, עולם!</greeting>

שאילתא ושינוי XML:

לחיפוש או שינוי אלמנטים, ניתן להשתמש בשיטות דומות ל-XPath:

void modifyXml(String xmlString) {
    var document = xml.XmlDocument.parse(xmlString);
    var greeting = document.findAllElements('greeting').first;
    
    // שינוי התכונה 'name'
    greeting.setAttribute('name', 'greeting_modified');
    
    // הוספת אלמנט ילד חדש
    greeting.children.add(xml.XmlElement(xml.XmlName('message'), [], [xml.XmlText('להתראות!')]));
    
    print(document.toXmlString(pretty: true));
}

void main() {
  final xmlString = '<greeting name="hello">שלום, עולם!</greeting>';
  modifyXml(xmlString);
}

פלט:

<greeting name="greeting_modified">
  שלום, עולם!
  <message>להתראות!</message>
</greeting>

דוגמאות אלה מדגימות פעולות בסיסיות לעבודה עם XML ב-Dart. עם החבילה xml, תוכלו לפרש, ליצור ולשנות מסמכי XML לפי דרישות האפליקציה שלכם.