Как выполнить преобразования XML с Ballerina?
Что Ballerina предлагает для выполнения преобразований с XML? Опции для Xpath, Xsd, Xslt? Я изучаю балерину и не нашла подходящих вариантов для выполнения XML-запросов и преобразований.
1 ответ
Решение
Балерина до сих пор не поддерживает 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