【问题标题】:check if the XML element has xsi:nil="true"检查 XML 元素是否具有 xsi:nil="true"
【发布时间】:2021-02-07 13:14:38
【问题描述】:

我有一个元素<ABC xsi:nil="true">。我想在 dataweave 2.0 中编写一个条件来检查这个 xsi:nil 的值,如果它等于“true”,我想在 JSON 中转换为 "ABC": null,我在脚本中使用 skipNullOn="everywhere"。我尝试使用payload.ABC.@nil == "true",但它给了null

【问题讨论】:

    标签: mule dataweave mule4


    【解决方案1】:

    这可能会有所帮助。

    %dw 2.0
    output application/json skipNullOn="everywhere"
    fun replaceElementAndAttribute(value:Any, name: String, newValue: Any) = do {
        value match {
            case obj is Object -> obj mapObject ((value, key, index) -> 
                if(key.@nil  ~= "true")
                    (key): "null"
                else    
                    (key) @((replaceElementAndAttribute(key.@, name, newValue))): replaceElementAndAttribute(value, name, newValue)
            )
            else -> value
        }
    }   
    ---
    replaceElementAndAttribute(payload,"", "")
    

    这类似于here 提到的内容。

    但是,使用此递归函数,它会将值输出为“null”字符串..

    【讨论】:

      猜你喜欢
      • 2019-02-18
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 2010-09-11
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多