Skip to content

Commit bc76b1b

Browse files
committed
feat: add std.parseXmlJsonml
1 parent 5a9d395 commit bc76b1b

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

doc/_stdlib_gen/stdlib-content.jsonnet

+38
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,44 @@ local html = import 'html.libsonnet';
618618
},
619619
],
620620
},
621+
{
622+
name: 'parseXmlJsonml',
623+
params: ['str', 'preserveWhitespace=false'],
624+
availableSince: 'upcoming',
625+
description: [
626+
html.p({}, |||
627+
Parses a XML string to <a href="http://www.jsonml.org/">JsonML</a>-encoded value. The XML should only contain
628+
one root node.
629+
|||),
630+
html.p({}, |||
631+
By default, all the boundary whitespace would be trimmed. It could be preserved using <code>preserveWhitespace</code>
632+
argument of the function.
633+
|||),
634+
],
635+
examples: [
636+
{
637+
input: "std.parseXmlJsonml('<svg height=\"100\" width=\"100\"><circle cx=\"50\" cy=\"50\" fill=\"red\" r=\"40\" stroke=\"black\" stroke-width=\"3\"></circle></svg>')",
638+
output: [
639+
"svg",
640+
{
641+
"height": "100",
642+
"width": "100"
643+
},
644+
[
645+
"circle",
646+
{
647+
"cx": "50",
648+
"cy": "50",
649+
"fill": "red",
650+
"r": "40",
651+
"stroke": "black",
652+
"stroke-width": "3"
653+
}
654+
]
655+
],
656+
},
657+
],
658+
},
621659
{
622660
name: 'encodeUTF8',
623661
params: ['str'],

stdlib/std.jsonnet

+2
Original file line numberDiff line numberDiff line change
@@ -1785,4 +1785,6 @@ limitations under the License.
17851785
sha3(str):: go_only_function,
17861786

17871787
trim(str):: std.stripChars(str, ' \t\n\f\r\u0085\u00A0'),
1788+
1789+
parseXmlJsonml(str):: go_only_function,
17881790
}

0 commit comments

Comments
 (0)