Удалите эти имена HTML из сообщения в dataweave

Как удалить это из сообщения, которое я мог бы описать только как имена HTML, такие как & или <

Могу ли я сделать это без использования функции замены?

Пример сообщения:

{
    "message": "Hello world & welcome"
}

Ожидаемый результат:

{
    "message": "Hello world & welcome"
}

Проверьте, помогает ли вам подход 2. help.salesforce.com/s/articleView?id=001116189&type=1 @Nadeem

Karthik 03.05.2024 16:08

Решения в этой ссылке должны работать, однако обратите внимание, что первое использует фиксированный список объектов. Я написал решение, которое не требует исправления значений в коде. Кроме того, эти сценарии ожидают определенного формата ввода, который необходимо адаптировать к требованиям пользователя.

aled 03.05.2024 16:27

@karthik: Я попробовал второй подход. Это добавление объектов, а не удаление их.

Nadeem 14.05.2024 16:08

К счастью, это были объекты XML. Итак, я воспользовался вашим решением @aled

Nadeem 14.05.2024 16:10
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
98
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вам повезет, это XML-объекты. Существует 5 объектов XML и сотни объектов HTML.

В настоящее время в DataWeave нет встроенной функции для разрешения объектов XML или HTML. Я написал чистое решение DataWeave, используя replace(), где объекты не фиксированы в коде, что дает возможность изменять список объектов по мере необходимости. Этот подход также работает для любого произвольного списка строк, которые необходимо заменить. Небольшая хитрость заключается в том, чтобы использовать reduce() для применения replace() для каждой сущности, а не для накопления значений.

Также я использовал оператор обновления для обновления определенного ключа сообщения.

Скрипт:

%dw 2.0
output application/json
var xmlEntities = {
    "&": "&",
    "&lt;": "<",
    "&gt;": ">",
    "&apos;": "'",
    "&quot;": "\""
}

fun replaceEntities(s: String, entities)=
    entriesOf(entities) reduce ((item, acc = s) -> acc replace item.key with(item.value))
---
payload update {
    case m at .message -> replaceEntities(m, xmlEntities)
}

Вход:

{
  "message": "Hello world &amp; welcome"
}

Выход:

{
  "message": "Hello world & welcome"
}

Другие вопросы по теме