Мы можем использовать тот же метод selectDescendants , но, поскольку во втором примере нет пространства имен для элемента xml, мы должны использовать пустое пространство имен для поиска дочерних элементов, как показано ниже. Кроме того, selectDescendants возвращает последовательность xml со всеми сопоставленными элементами. Таким образом, чтобы получить нужный элемент XML, один из вариантов - получить к нему правильный индекс. Пример кода приведен ниже.
import ballerina/io;
function main (string... args) {
xml x = xml `<member>
<sourcedid>
<source>test1</source>
<id>1234.567</id>
</sourcedid>
<entity>
<sourcedid>
<source>test2</source>
<id>123</id>
</sourcedid>
<idtype>1</idtype>
</entity>
<entity>
<sourcedid>
<source>test</source>
<id>123</id>
</sourcedid>
<idtype>2</idtype>
</entity>
</member>`;
//Below would first find all the matched elements with "id" name and then get the first element
xml x1 = x.selectDescendants("{}id")[0];
io:println(x1);
}