@@ -11,10 +11,18 @@ class ParsingException implements Exception {
1111class XmlParser extends Parser {
1212 final XmlElement element;
1313
14- XmlParser (this .element);
15-
16- factory XmlParser .fromString (String string) =>
17- XmlParser (XmlDocument .parse (string).rootElement);
14+ XmlParser (this .element, {super .tsxProviders, super .templateProviders});
15+
16+ factory XmlParser .fromString (
17+ String string, {
18+ List <ParserProvider >? tsxProviders,
19+ List <ParserProvider >? templateProviders,
20+ }) =>
21+ XmlParser (
22+ XmlDocument .parse (string).rootElement,
23+ tsxProviders: tsxProviders,
24+ templateProviders: templateProviders,
25+ );
1826
1927 @override
2028 String ? getInnerTextOrNull () =>
@@ -30,15 +38,23 @@ class XmlParser extends Parser {
3038 return element.children
3139 .whereType <XmlElement >()
3240 .where ((e) => e.name.local == name)
33- .map (XmlParser .new )
41+ .map ((e) => XmlParser (
42+ e,
43+ templateProviders: templateProviders,
44+ tsxProviders: tsxProviders,
45+ ))
3446 .toList ();
3547 }
3648
3749 List <Parser > getChildrenWithNames (Set <String > names) {
3850 return element.children
3951 .whereType <XmlElement >()
4052 .where ((e) => names.contains (e.name.local))
41- .map (XmlParser .new )
53+ .map ((e) => XmlParser (
54+ e,
55+ tsxProviders: tsxProviders,
56+ templateProviders: templateProviders,
57+ ))
4258 .toList ();
4359 }
4460
@@ -54,8 +70,18 @@ class XmlParser extends Parser {
5470class JsonParser extends Parser {
5571 final Map <String , dynamic > json;
5672
57- JsonParser (this .json);
58- factory JsonParser .fromString (String string) => JsonParser (jsonDecode (string) as Map <String , dynamic >);
73+ JsonParser (this .json, {super .tsxProviders, super .templateProviders});
74+
75+ factory JsonParser .fromString (
76+ String string, {
77+ List <ParserProvider >? tsxProviders,
78+ List <ParserProvider >? templateProviders,
79+ }) =>
80+ JsonParser (
81+ jsonDecode (string) as Map <String , dynamic >,
82+ tsxProviders: tsxProviders,
83+ templateProviders: templateProviders,
84+ );
5985
6086 @override
6187 String ? getInnerTextOrNull () => null ;
@@ -71,7 +97,11 @@ class JsonParser extends Parser {
7197 return [];
7298 }
7399 return (json[name] as List <dynamic >)
74- .map ((dynamic e) => JsonParser (e as Map <String , dynamic >))
100+ .map ((dynamic e) => JsonParser (
101+ e as Map <String , dynamic >,
102+ templateProviders: templateProviders,
103+ tsxProviders: tsxProviders,
104+ ))
75105 .toList ();
76106 }
77107
@@ -89,6 +119,11 @@ class JsonParser extends Parser {
89119}
90120
91121abstract class Parser {
122+ final List <ParserProvider >? templateProviders;
123+ final List <ParserProvider >? tsxProviders;
124+
125+ Parser ({this .tsxProviders, this .templateProviders});
126+
92127 String ? getInnerTextOrNull ();
93128
94129 String ? getStringOrNull (String name, {String ? defaults});
0 commit comments