Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtSpXmNst 185 of 224 menu
◀ ▶

Вложенные XML-теги в Dart

Теги могут вкладываться друг в друга. Тогда нужный узел ищут по имени среди потомков:

<root> <block> <caption>alpha</caption> </block> </root>

Сначала берут внешний элемент, затем внутренний по его имени:

import 'package:xml/xml.dart'; var xml = ''' <root> <block> <caption>alpha</caption> </block> </root> '''; var doc = XmlDocument.parse(xml); var root = doc.rootElement; var block = root.getElement('block')!; var caption = block.getElement('caption')!.innerText; print(caption);

Несколько родительских тегов часто повторяют одну структуру дочерних полей:

<root> <entry> <word>alpha</word> </entry> <entry> <word>beta</word> </entry> <entry> <word>gamma</word> </entry> </root>

Каждый родитель обходят отдельно, текст берут у вложенного тега:

import 'package:xml/xml.dart'; var xml = ''' <root> <entry><word>alpha</word></entry> <entry><word>beta</word></entry> <entry><word>gamma</word></entry> </root> '''; var doc = XmlDocument.parse(xml); var root = doc.rootElement; for (var entry in root.findElements('entry')) { var word = entry.getElement('word')!.innerText; print(word); }

Дан следующий код:

import 'package:xml/xml.dart'; var xml = ''' <root> <tag1> <tag2> <tag3> text </tag3> </tag2> </tag1> </root> ''';

Выведите в консоль текст самого внутреннего тега.

Дан следующий код:

import 'package:xml/xml.dart'; var xml = ''' <root> <user> <name>john</name> <surn>smit</surn> </user> <user> <name>eric</name> <surn>wils</surn> </user> <user> <name>kyle</name> <surn>tayl</surn> </user> </root> ''';

Выведите в консоль имя и фамилию каждого юзера.

Дан следующий код:

import 'package:xml/xml.dart'; var xml = ''' <root> <product cost="100" amount="3"> <name>prod1</name> <category>cat1</category> </product> <product cost="200" amount="4"> <name>prod2</name> <category>cat2</category> </product> <product cost="300" amount="5"> <name>prod3</name> <category>cat3</category> </product> </root> ''';

Выведите в консоль название, категорию, цену и количество каждого продукта.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить