xml - Dataweave:打开和关闭标签命名空间
问题描述
我的 DataWeave 地图上有一个命名空间。我想要开始标签上的命名空间属性,而不是结束标签上的属性。
{ '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-attribute和https://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 使用适当的数据结构来处理它。
推荐阅读
- c++ - 具有相对路径的 CMake 安装目标
- c++ - C++:在多个文件中定义类
- python - 继承中带/不带下划线的python变量
- vbscript - crt.Dialog.FileOpenDialog([title, [buttonLabel, [defaultFilename, [filter ]]]])
- html - 当浏览器不是全屏时,单击此处按钮上的定位关闭
- git - git 分支工作流策略
- java - 带有对象键的 HashMap
- oauth - 身份服务器 4 中的授权流程:不支持的授予类型
- c++ - 有没有办法让一组未初始化的类在调用 delete[] 时不会被破坏?
- ruby - 带有传统知识支持的红宝石