Я ищу модифицировать тождественное преобразование, чтобы пропустить элементы, где любой из атрибута является пустым, например: копия <anyElement anyAttr1="a" anyAttr2="b"/>
но не копировать <anotherElement anotherAttr1="a" anotherAttr2=""/>
XSL 1,0: преобразование идентичности, которая пропускает элементы, где атрибут пуст
Примечания:
Не имеет значения, имеет ли элемент детей или нет.
элементы без каких-либо признаков на всех (элементов контейнеров), должны быть скопированы
Источник пример XML:
<?xml version="1.0" encoding="utf-8"?>
<Parameterset>
<Type Code=""/>
<Inventory Code="250" Index="0"/>
<Inventory Code="350" Index=""/>
</Parameterset>
Преобразованный Пример XML:
<?xml version="1.0" encoding="utf-8"?>
<Parameterset>
<Inventory Code="250" Index="0"/>
</Parameterset>
Все, что я мог бы придумал:
<xsl:template match="node()|@*[. != '']">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
, но это только удаляет пустые атрибуты и копирует элемент.