首页 文章

从xml中挑选数据并将其添加到响应中

提问于
浏览
0

我完成了OSB快速入门教程(http://www.oracle.com/technetwork/articles/jumpstart-for-osb-development-page--097357.html),并希望扩展其功能 .

目前我收到以下回复:

<cus:GetAllCustomersResponse  xmlns:cus="http://www.waai.nl/cdm/customer"> 
    <cus:Customer> 
        <cus:customerId>1</cus:customerId> 
    </cus:Customer> 
    <cus:Customer> 
        <cus:customerId>2</cus:customerId> 
    </cus:Customer> 
</cus:GetAllCustomersResponse>

我有一个带有ID和名称的XML文件 . 我能够从响应中提取“1”和“2” . 我想从ID为1和ID 2的另一个XML文件中获取名称并将它们作为响应 .

我尝试了各种各样的东西,但我能得到的回答是“1和2”以及整个XML文件 .

1 回答

  • 0

    没有代表评论 .

    请添加您的尝试示例,以便指出问题 . 你上一次成功的步骤是什么?目前还不清楚你的意思

    我能得到的回答是“1和2”以及整个XML文件 .

    我猜你实现了 GetAllCustomers 操作并被卡在 GetCustomerById 上?所有数据的示例都很有用,因此无需在引用的文章中查找下载 .

    我假设您希望将name字段与id一起作为 GetAllCustomers 的响应 . (或者只留下1位客户 nameid 表示 GetCustomerById ?)


    下面的文字保留为FYI,是我在阅读引用文章之前发布的原始答案的一部分 . 作业不是很好的手册,部分是荷兰语...

    这里的基本思想是在任何循环中回顾 ids XML的客户(例如 for )并解析 id to name map XML中的名称 . 如果响应模式允许它 name 可以与 ids 中的id一起插入,否则您需要修改模式(或添加新模式) .

    有多种方法可以做到这一点 . 最好的解决方案取决于您选择考虑您的数据和用例 .

    这可以通过 Insert 动作将数据添加到现有的 ids XML:

    • OSB循环 ids 中的id并使用带有XPath的 id to name map 中的id选择名称

    这些也可用作创建新(合并)XML的 Assign 操作的选项:

    • XQuery转换,它接受2个参数并产生1个结果

    • XSLT转换,它接受2个参数并产生1个结果

相关问题