如何读取 xml 文件并将内容设置为 Mulesoft (Dataweave) 中 Transform Message 的有效负载

问题描述 投票:0回答:1

我需要读取XML文件的内容并通过转换消息组件将其设置为有效负载 我按照下面的方法做了,但出现了如下错误

数据编织脚本

%dw 2.0
output application/xml
---
Mule::p('file::src/test/resources/inbound.xml')

错误

""Trying to output non-whitespace characters outside main element tree (in prolog or epilog), while writing Xml at ." evaluating expression: "%dw 2.0
output application/xml
---
Mule::p('file::src/test/resources/inbound.xml')"."

我认为如果我将输出设置为 java 而不是 xml,它可以消除错误。但输出类型将是java,我需要通过另一个额外步骤将其转换为xml。我是 mulesoft 的新人。任何想法或提示都表示赞赏。

dataweave mulesoft
1个回答
0
投票

使用 p() 函数根本没有意义。该函数用于读取 Mule 应用程序中定义的属性值(请参阅https://docs.mulesoft.com/mule-runtime/latest/configuring-properties),这是一个不同的用例。

您可以使用 readUrl() 函数来读取文件的内容。但是您应该注意一些注意事项。您不应引用项目源目录中的任何内容。这在开发过程中可能有效,但在部署到独立的 Mule 服务器时,src 目录甚至不存在。并且不要使用 file: URL,因为 Mule 应用程序会打包到 JAR 文件中。

而是使用

classpath:
模式并引用相对于
resource
目录的文件。

示例:

readUrl("classpath://inbound.xml", "application/xml")
© www.soinside.com 2019 - 2024. All rights reserved.