You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将XML的value属性赋值给Ballerina的Person记录name字段?

Ballerina中提取XML属性赋值给Person记录

需求背景

现有Ballerina的Person记录定义:

type Person record {
    string name;
    int age;
};

以及对应的XML结构:

<Person>
 <name value="karen"/>
 <age>18</age>
</Person>

需要将XML中<name>元素的value属性值赋值给Person记录的name字段,同时提取<age>元素的文本内容赋值给age字段。

实现代码

type Person record {
    string name;
    int age;
};

public function main() {
    // 待解析的XML实例
    xml personXml = xml `<Person>
        <name value="karen"/>
        <age>18</age>
    </Person>`;

    // 提取name元素的value属性值
    string name = personXml.Person.name.@value;
    // 提取age元素的文本并转换为int类型(check处理转换错误)
    int age = check int:parse(personXml.Person.age.text());

    // 构建Person记录
    Person person = {
        name: name,
        age: age
    };

    // 输出验证结果
    io:println(person);
}

关键说明

  • 使用Ballerina的XML导航语法:personXml.Person.name.@value 直接定位到<name>元素的value属性,获取其字符串值。
  • 对于<age>元素,通过.text()方法提取其内部文本内容,再用int:parse()转换为整数类型,check关键字用于处理转换失败的异常场景。
  • 如果XML结构存在不确定性(比如<name>元素可能缺失),可以使用可选导航符?避免空指针错误:personXml.Person.name?@value,此时返回的是string?类型,需要处理空值情况。

内容的提问来源于stack exchange,提问作者Prakanth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 23:30:07