Как удалить лишнее пространство в пустом теге с помощью XSLT в BizTalk

#xml #visual-studio #xslt #biztalk

Вопрос:

Я использую процессор Visual Studio XSLT в проекте BizTalk.

В XSLT <tag/> or <tag></tag> создается вывод с дополнительным пространством на конце, как это <tag />

Когда выбор не дает результатов: <tag><xsl:value-of select="s0:tag/text()"/></tag> дает мне <tag/> , и это нормально.

Таким образом, при использовании версии без выбора остается дополнительное пространство. Это дополнительное пространство имеет значение при кодировании этого XML в JSON.

Как избавиться от этого дополнительного пространства с помощью более элегантного подхода, чем выбор пустого тега?

Комментарии:

1. <tag/> это в точности то же самое, <tag /> что и . Я не знаю, можете ли вы контролировать то, как ваш процессор сериализует выходное дерево. В любом случае, если это имеет значение для вашего целевого приложения, то это целевое приложение, которое необходимо исправить.

2. Логически да, но это дополнительное пространство имеет значение при кодировании этого XML в JSON, и этот кодер встроен в движок Biztalk, поэтому я считаю, что он должен быть управляемым

3. Каким образом <tag/> кодируется в JSON, как кодируется для <tag /> разных? И какой результат вы хотите получить? Я { "tag" : null } предполагаю { "tag" : "" } , что это может быть проблемой, но вы на самом деле не объяснили, какая именно проблема возникает.

4. @Мартин Хоннен Хорошо угадал его { «тег» : null } по сравнению с { «тег» : «» }

5. Выполняется ли кодирование в JSON вашим собственным кодом? Или какой-то API? Есть ли у него какие-либо параметры, как сопоставить пустые XML-элементы с JSON, которые вы можете настроить?