【问题标题】:Dataweave: Opening and Closing Tags NamespaceDataweave:打开和关闭标签命名空间
【发布时间】:2021-02-17 14:35:48
【问题描述】:

我的 DataWeave 地图上有一个命名空间。我想要开始标签上的命名空间属性,而不是结束标签上的属性。

{ 'trace xsi:type="trace"':

关闭XML标签应该是

</trace>

但目前正在获得

</trace xsi:type="trace">

【问题讨论】:

  • 您能否给出一个完全可重现的配对示例,显示输入和预期输出,以便我们提供帮助?看起来你那里有一些无效的 json。

标签: xml namespaces dataweave


【解决方案1】:

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

%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 使用适当的数据结构来处理它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    相关资源
    最近更新 更多