Dataweave:打开和关闭标签命名空间
Dataweave: Opening and Closing Tags Namespace
我的 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">
它这样做是因为您告诉数据编织整个字符串 ('trace xsi:type="trace"'
) 由您的键、名称空间和属性组成 key/value 都是一个字符串,代表键。它不知道这是一个带有命名空间的属性 key/value,因为您已经对其进行了硬编码。
这是您应该如何执行此操作(请参阅文档:https://docs.mulesoft.com/mule-runtime/4.3/dataweave-cookbook-insert-attribute and 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>
不要手动输入你的命名空间和属性,让数据编织使用适当的数据结构来处理它。
我的 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">
它这样做是因为您告诉数据编织整个字符串 ('trace xsi:type="trace"'
) 由您的键、名称空间和属性组成 key/value 都是一个字符串,代表键。它不知道这是一个带有命名空间的属性 key/value,因为您已经对其进行了硬编码。
这是您应该如何执行此操作(请参阅文档:https://docs.mulesoft.com/mule-runtime/4.3/dataweave-cookbook-insert-attribute and 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>
不要手动输入你的命名空间和属性,让数据编织使用适当的数据结构来处理它。