如何使用 Ballerina 进行 XML 变形?
How to perform XML transformations with Ballerina?
Ballerina 提供什么来执行 XML 的转换? Xpath、Xsd、Xslt 的选项?我正在研究 Ballerina,但没有发现执行 XML 查询和转换的好选择。
Ballerina 还没有对 XSLT 的 OOB 支持。但是,语言语法有足够的支持来编写您自己的转换器。它提供了类似 xpath 的语法来访问元素和属性。
例如:
xml bookXML = xml `<book>
<name>Sherlock Holmes</name>
<author>
<fname title="Sir">Arthur</fname>
<mname>Conan</mname>
<lname>Doyle</lname>
</author>
<!--Price: -->
</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
Ballerina 提供什么来执行 XML 的转换? Xpath、Xsd、Xslt 的选项?我正在研究 Ballerina,但没有发现执行 XML 查询和转换的好选择。
Ballerina 还没有对 XSLT 的 OOB 支持。但是,语言语法有足够的支持来编写您自己的转换器。它提供了类似 xpath 的语法来访问元素和属性。
例如:
xml bookXML = xml `<book>
<name>Sherlock Holmes</name>
<author>
<fname title="Sir">Arthur</fname>
<mname>Conan</mname>
<lname>Doyle</lname>
</author>
<!--Price: -->
</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