Что предлагает Ballerina для выполнения преобразований с помощью XML? Опции для Xpath, Xsd, Xslt? Я изучаю Балерину и не нашел хороших вариантов выполнения XML-запросов и преобразований.

1
Renan Lima 11 Сен 2018 в 19:39

1 ответ

Лучший ответ

Ballerina по-прежнему не поддерживает OOB для XSLT. Однако синтаксиса языка достаточно для написания собственного преобразователя. Он предоставляет синтаксис, аналогичный xpath, для доступа к элементам и атрибутам.

Например:

xml bookXML = xml `<book>
            <name>Sherlock Holmes</name>
            <author>
                <fname title="Sir">Arthur</fname>
                <mname>Conan</mname>
                <lname>Doyle</lname>
            </author>
            <!--Price: $10-->
            </book>`;

// Can access inner elements using field-access syntax, and attribute using '@' sign.
string title = bookXML.author.fname@["title"]

// OR
string title = bookXML["author"]["fname"]@["title"]

Есть еще одна группа собственных функций для выполнения других манипуляций с XML, таких как selectDescendants(), slice() и т. Д. Их можно найти в [1].

Точно так же вы можете написать свой собственный синтаксический анализатор XSD и валидатор, используя указанные выше языковые функции.

[1] https://ballerina.io/learn/by-example/xml -functions.html

3
Supun Setunga 14 Сен 2018 в 04:15