The Webfeed Flutter package for Appeto SDK.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 regels
855 B

  1. import 'dart:core';
  2. import 'package:xml/xml.dart';
  3. XmlElement findFirstElement(
  4. XmlNode node,
  5. String name, {
  6. bool recursive = false,
  7. String namespace,
  8. }) {
  9. try {
  10. return findElements(node, name, recursive: recursive, namespace: namespace)
  11. ?.first;
  12. } on StateError {
  13. return null;
  14. }
  15. }
  16. Iterable<XmlElement> findElements(
  17. XmlNode node,
  18. String name, {
  19. bool recursive = false,
  20. String namespace,
  21. }) {
  22. try {
  23. if (recursive) {
  24. return node.findAllElements(name, namespace: namespace);
  25. } else {
  26. return node.findElements(name, namespace: namespace);
  27. }
  28. } on StateError {
  29. return null;
  30. }
  31. }
  32. bool parseBoolLiteral(XmlElement element, String tagName) {
  33. var v = findFirstElement(element, tagName)?.text?.toLowerCase()?.trim();
  34. if (v == null) return false;
  35. return ['yes', 'true'].contains(v);
  36. }