xml - Dataweave:打开和关闭标签命名空间

标签 xml namespaces dataweave

我的 DataWeave map 上有一个命名空间。我想要开始标签上的命名空间属性,但不想作为结束标签上的属性。

{ 'trace xsi:type="trace"':
关闭 XML 标签应该是</trace>但目前得到</trace xsi:type="trace">

最佳答案

请提供更完整的数据编织示例。我假设你正在做这样的事情:

%dw 2.0
output application/xml
---
{ 
    'trace xsi:type="trace"': {
        'somethingElse': null
    }
}
产生:
<?xml version='1.0' encoding='UTF-8'?>
<trace xsi:type="trace">
  <somethingElse/>
</trace xsi:type="trace">
这样做是因为您已经告诉 data-weave 由您的键、命名空间和属性键/值组成的整个字符串 ( 'trace xsi:type="trace"' ) 都是一个字符串,代表键。它不知道这是一个带有命名空间的属性键/值,因为您已经对其进行了硬编码。
这是您应该如何执行此操作(请参阅文档:https://docs.mulesoft.com/mule-runtime/4.3/dataweave-cookbook-insert-attributehttps://docs.mulesoft.com/mule-runtime/4.3/dataweave-cookbook-include-xml-namespaces)
%dw 2.0
output application/xml
ns xsi http://www.w3.org/2001/XMLSchema-instance
---
{
    trace @(xsi#'type': 'trace'): {
        'somethingElse': null
    }
}
产生:
<?xml version='1.0' encoding='UTF-8'?>
<trace xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="trace">
  <somethingElse/>
</trace>
不要手动放入命名空间和属性,让 data-weave 使用适当的数据结构来处理它。

关于xml - Dataweave:打开和关闭标签命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66244063/

相关文章:

xml - 使用 nuspec.xsd 验证 .nuspec 文件在 'package' 上失败

.net - 可以在 app.config 中为 .NET 命名空间添加别名吗?

java - 使用消息选择器按时间戳进行 JMS 过滤

mule - 如何在 Dataweave 中使用变量作为键

xml - 在 Maven POM 文件中转义开发人员姓名变音符号?

c# - 将 XML 转换为 C# 对象

xml - Q : Sitemap XML - Should I include the #Section links of my single-page website?

javascript - 用户控制台可以读取本地 JavaScript 变量吗?

namespaces - 在扩展 key 中使用 "user_"前缀是否有好处?

mule - 为什么 Mule DataWeave 数组映射会剥离顶级对象?