Удалить пустой объект attritbutes с помощью XSLT - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь удалить узел xml с пустыми значениями ниже моего кода

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:template match="node()|@*" >
    <xsl:copy>
         <xsl:apply-templates select="@*[.!='']" />
         <xsl:apply-templates select="node()" />
    </xsl:copy>
</xsl:template>

Ввод:

<Test><id value=""></id><name value="Test"></name></Test>

Вывод:

<Test><id /><name value="Test" /></Test>

Ожидаемый вывод:

<Test><name value="Test" /></Test>

Здесь тег <id\> следует удалить.Пожалуйста, предложите, где мне не хватает.Пожалуйста, помогите мне решить вышеуказанную проблему.

1 Ответ

0 голосов
/ 25 мая 2018

Ваш скрипт пропускает только такие пустые атрибуты , а не весь элемент содержит.

Если вы хотите пропустить весь элемент хотя бы с одним пустым атрибутом,используйте пустой шаблон, соответствующий таким элементам:

<xsl:template match="*[@* = '']"/>

и обычный шаблон идентификации .

Чтобы пропустить пустые строки, оставленные в местах этих "удаленныхэлементы, вы можете добавить <xsl:strip-space elements="*"/> в ваш скрипт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...